From 5a67ce13f8e68592276d7d279c0e1226a76acdf3 Mon Sep 17 00:00:00 2001
From: AWS <>
Date: Sat, 12 Dec 2020 00:47:48 +0000
Subject: [PATCH] AWS SDK for Java 1.11.918

---
 CHANGELOG.md                                  |    25 +
 README.md                                     |     2 +-
 aws-java-sdk-accessanalyzer/pom.xml           |     2 +-
 aws-java-sdk-acm/pom.xml                      |     2 +-
 aws-java-sdk-acmpca/pom.xml                   |     2 +-
 aws-java-sdk-alexaforbusiness/pom.xml         |     2 +-
 aws-java-sdk-amplify/pom.xml                  |     2 +-
 aws-java-sdk-amplifybackend/pom.xml           |     2 +-
 aws-java-sdk-api-gateway/pom.xml              |     2 +-
 aws-java-sdk-apigatewaymanagementapi/pom.xml  |     2 +-
 aws-java-sdk-apigatewayv2/pom.xml             |     2 +-
 aws-java-sdk-appconfig/pom.xml                |     2 +-
 aws-java-sdk-appflow/pom.xml                  |     2 +-
 aws-java-sdk-appintegrations/pom.xml          |     2 +-
 aws-java-sdk-applicationautoscaling/pom.xml   |     2 +-
 aws-java-sdk-applicationinsights/pom.xml      |     2 +-
 aws-java-sdk-appmesh/pom.xml                  |     2 +-
 aws-java-sdk-appregistry/pom.xml              |     2 +-
 aws-java-sdk-appstream/pom.xml                |     2 +-
 aws-java-sdk-appsync/pom.xml                  |     2 +-
 aws-java-sdk-athena/pom.xml                   |     2 +-
 aws-java-sdk-auditmanager/pom.xml             |     2 +-
 aws-java-sdk-augmentedairuntime/pom.xml       |     2 +-
 aws-java-sdk-autoscaling/pom.xml              |     2 +-
 aws-java-sdk-autoscalingplans/pom.xml         |     2 +-
 aws-java-sdk-backup/pom.xml                   |     2 +-
 aws-java-sdk-batch/pom.xml                    |     2 +-
 aws-java-sdk-bom/pom.xml                      |     2 +-
 aws-java-sdk-braket/pom.xml                   |     2 +-
 aws-java-sdk-budgets/pom.xml                  |     2 +-
 aws-java-sdk-bundle/pom.xml                   |     4 +-
 aws-java-sdk-chime/pom.xml                    |     2 +-
 aws-java-sdk-cloud9/pom.xml                   |     2 +-
 aws-java-sdk-clouddirectory/pom.xml           |     2 +-
 aws-java-sdk-cloudformation/pom.xml           |     2 +-
 aws-java-sdk-cloudfront/pom.xml               |     2 +-
 aws-java-sdk-cloudhsm/pom.xml                 |     2 +-
 aws-java-sdk-cloudhsmv2/pom.xml               |     2 +-
 aws-java-sdk-cloudsearch/pom.xml              |     2 +-
 aws-java-sdk-cloudtrail/pom.xml               |     2 +-
 .../services/cloudtrail/AWSCloudTrail.java    |    67 +-
 .../cloudtrail/AWSCloudTrailAsync.java        |    62 +-
 .../cloudtrail/AWSCloudTrailClient.java       |    70 +-
 .../model/AdvancedEventSelector.java          |    92 +-
 .../model/AdvancedFieldSelector.java          |   722 +-
 ...oudTrailInvalidClientTokenIdException.java |    37 +
 .../cloudtrail/model/DataResource.java        |     4 +
 .../cloudtrail/model/EventSelector.java       |     3 +
 .../model/GetEventSelectorsResult.java        |    26 +-
 .../model/InvalidEventSelectorsException.java |    15 +-
 .../model/PutEventSelectorsRequest.java       |   122 +-
 .../model/PutEventSelectorsResult.java        |    26 +-
 ...lidClientTokenIdExceptionUnmarshaller.java |    75 +
 aws-java-sdk-cloudwatch/pom.xml               |     2 +-
 .../services/cloudwatch/AmazonCloudWatch.java |    45 +-
 .../cloudwatch/AmazonCloudWatchAsync.java     |    90 +-
 .../cloudwatch/AmazonCloudWatchClient.java    |    45 +-
 .../model/PutCompositeAlarmRequest.java       |    27 +-
 .../model/PutMetricAlarmRequest.java          |    76 +
 aws-java-sdk-cloudwatchmetrics/pom.xml        |     2 +-
 aws-java-sdk-code-generator/pom.xml           |     2 +-
 aws-java-sdk-codeartifact/pom.xml             |     2 +-
 aws-java-sdk-codebuild/pom.xml                |     2 +-
 aws-java-sdk-codecommit/pom.xml               |     2 +-
 aws-java-sdk-codedeploy/pom.xml               |     2 +-
 aws-java-sdk-codegen-maven-plugin/pom.xml     |     2 +-
 aws-java-sdk-codeguruprofiler/pom.xml         |     2 +-
 aws-java-sdk-codegurureviewer/pom.xml         |     2 +-
 aws-java-sdk-codepipeline/pom.xml             |     2 +-
 aws-java-sdk-codestar/pom.xml                 |     2 +-
 aws-java-sdk-codestarconnections/pom.xml      |     2 +-
 aws-java-sdk-codestarnotifications/pom.xml    |     2 +-
 aws-java-sdk-cognitoidentity/pom.xml          |     2 +-
 aws-java-sdk-cognitoidp/pom.xml               |     2 +-
 aws-java-sdk-cognitosync/pom.xml              |     2 +-
 aws-java-sdk-comprehend/pom.xml               |     2 +-
 aws-java-sdk-comprehendmedical/pom.xml        |     2 +-
 aws-java-sdk-computeoptimizer/pom.xml         |     2 +-
 aws-java-sdk-config/pom.xml                   |     2 +-
 aws-java-sdk-connect/pom.xml                  |     2 +-
 aws-java-sdk-connectcontactlens/pom.xml       |     2 +-
 aws-java-sdk-connectparticipant/pom.xml       |     2 +-
 aws-java-sdk-core/pom.xml                     |     2 +-
 .../com/amazonaws/sdk/versionInfo.properties  |     6 +-
 aws-java-sdk-costandusagereport/pom.xml       |     2 +-
 aws-java-sdk-costexplorer/pom.xml             |     2 +-
 aws-java-sdk-customerprofiles/pom.xml         |     2 +-
 aws-java-sdk-dataexchange/pom.xml             |     2 +-
 aws-java-sdk-datapipeline/pom.xml             |     2 +-
 aws-java-sdk-datasync/pom.xml                 |     2 +-
 aws-java-sdk-dax/pom.xml                      |     2 +-
 aws-java-sdk-detective/pom.xml                |     2 +-
 aws-java-sdk-devicefarm/pom.xml               |     2 +-
 aws-java-sdk-devopsguru/pom.xml               |     2 +-
 aws-java-sdk-directconnect/pom.xml            |     2 +-
 aws-java-sdk-directory/pom.xml                |     2 +-
 aws-java-sdk-discovery/pom.xml                |     2 +-
 aws-java-sdk-dlm/pom.xml                      |     2 +-
 aws-java-sdk-dms/pom.xml                      |     2 +-
 aws-java-sdk-docdb/pom.xml                    |     2 +-
 aws-java-sdk-dynamodb/pom.xml                 |     2 +-
 aws-java-sdk-ebs/pom.xml                      |     2 +-
 aws-java-sdk-ec2/pom.xml                      |     2 +-
 aws-java-sdk-ec2instanceconnect/pom.xml       |     2 +-
 aws-java-sdk-ecr/pom.xml                      |     2 +-
 aws-java-sdk-ecrpublic/pom.xml                |     2 +-
 aws-java-sdk-ecs/pom.xml                      |     2 +-
 aws-java-sdk-efs/pom.xml                      |     2 +-
 aws-java-sdk-eks/pom.xml                      |     2 +-
 aws-java-sdk-elasticache/pom.xml              |     2 +-
 aws-java-sdk-elasticbeanstalk/pom.xml         |     2 +-
 aws-java-sdk-elasticinference/pom.xml         |     2 +-
 aws-java-sdk-elasticloadbalancing/pom.xml     |     2 +-
 aws-java-sdk-elasticloadbalancingv2/pom.xml   |     2 +-
 aws-java-sdk-elasticsearch/pom.xml            |     2 +-
 aws-java-sdk-elastictranscoder/pom.xml        |     2 +-
 aws-java-sdk-emr/pom.xml                      |     2 +-
 aws-java-sdk-emrcontainers/pom.xml            |     2 +-
 aws-java-sdk-eventbridge/pom.xml              |     2 +-
 aws-java-sdk-events/pom.xml                   |     2 +-
 aws-java-sdk-fms/pom.xml                      |     2 +-
 aws-java-sdk-forecast/pom.xml                 |     2 +-
 aws-java-sdk-forecastquery/pom.xml            |     2 +-
 aws-java-sdk-frauddetector/pom.xml            |     2 +-
 aws-java-sdk-fsx/pom.xml                      |     2 +-
 aws-java-sdk-gamelift/pom.xml                 |     2 +-
 aws-java-sdk-glacier/pom.xml                  |     2 +-
 aws-java-sdk-globalaccelerator/pom.xml        |     2 +-
 aws-java-sdk-glue/pom.xml                     |     2 +-
 aws-java-sdk-gluedatabrew/pom.xml             |     2 +-
 aws-java-sdk-greengrass/pom.xml               |     2 +-
 aws-java-sdk-groundstation/pom.xml            |     2 +-
 aws-java-sdk-guardduty/pom.xml                |     2 +-
 .../services/guardduty/AmazonGuardDuty.java   |    39 +-
 .../guardduty/AmazonGuardDutyAsync.java       |    78 +-
 .../guardduty/AmazonGuardDutyClient.java      |    39 +-
 .../model/AcceptInvitationRequest.java        |    28 +-
 .../model/CreateDetectorRequest.java          |    32 +-
 .../guardduty/model/CreateFilterRequest.java  |    70 +-
 .../guardduty/model/CreateMembersRequest.java |    36 +-
 ...scribeOrganizationConfigurationResult.java |    32 +-
 .../model/DisassociateMembersRequest.java     |    53 +-
 .../guardduty/model/GetDetectorResult.java    |    14 +-
 .../model/GetMasterAccountResult.java         |    14 +-
 .../model/GetMemberDetectorsRequest.java      |    14 +-
 .../ListOrganizationAdminAccountsResult.java  |    19 +-
 .../services/guardduty/model/Master.java      |    44 +-
 .../services/guardduty/model/Member.java      |    28 +-
 .../model/StartMonitoringMembersRequest.java  |    24 +-
 .../model/StopMonitoringMembersRequest.java   |    24 +-
 .../model/UpdateDetectorRequest.java          |    14 +-
 .../model/UpdateMemberDetectorsRequest.java   |    28 +-
 ...pdateOrganizationConfigurationRequest.java |    14 +-
 .../model/UpdateThreatIntelSetRequest.java    |    21 +-
 aws-java-sdk-health/pom.xml                   |     2 +-
 aws-java-sdk-healthlake/pom.xml               |     2 +-
 aws-java-sdk-honeycode/pom.xml                |     2 +-
 aws-java-sdk-iam/pom.xml                      |     2 +-
 aws-java-sdk-identitystore/pom.xml            |     2 +-
 aws-java-sdk-imagebuilder/pom.xml             |     2 +-
 aws-java-sdk-importexport/pom.xml             |     2 +-
 aws-java-sdk-inspector/pom.xml                |     2 +-
 aws-java-sdk-iot/pom.xml                      |     2 +-
 aws-java-sdk-iot1clickdevices/pom.xml         |     2 +-
 aws-java-sdk-iot1clickprojects/pom.xml        |     2 +-
 aws-java-sdk-iotanalytics/pom.xml             |     2 +-
 aws-java-sdk-iotevents/pom.xml                |     2 +-
 aws-java-sdk-ioteventsdata/pom.xml            |     2 +-
 aws-java-sdk-iotjobsdataplane/pom.xml         |     2 +-
 aws-java-sdk-iotsecuretunneling/pom.xml       |     2 +-
 aws-java-sdk-iotsitewise/pom.xml              |     2 +-
 .../services/iotsitewise/AWSIoTSiteWise.java  |   103 +-
 .../iotsitewise/AWSIoTSiteWiseAsync.java      |    80 +-
 .../AWSIoTSiteWiseAsyncClient.java            |    66 +-
 .../iotsitewise/AWSIoTSiteWiseClient.java     |   209 +-
 .../iotsitewise/AbstractAWSIoTSiteWise.java   |    10 +-
 .../AbstractAWSIoTSiteWiseAsync.java          |    26 +-
 .../model/AssetCompositeModel.java            |   326 +
 .../iotsitewise/model/AssetHierarchyInfo.java |   189 +
 .../model/AssetModelCompositeModel.java       |   326 +
 .../AssetModelCompositeModelDefinition.java   |   326 +
 .../iotsitewise/model/AssetModelProperty.java |    60 +
 .../model/AssetModelPropertyDefinition.java   |   125 +-
 .../iotsitewise/model/AssetProperty.java      |    60 +
 .../model/AssetRelationshipSummary.java       |   294 +
 .../model/AssetRelationshipType.java          |    59 +
 .../model/CompositeModelProperty.java         |   224 +
 .../model/ConfigurationErrorDetails.java      |    53 +-
 .../model/ConfigurationStatus.java            |    53 +-
 .../model/CreateAssetModelRequest.java        |   101 +
 .../model/CreatePortalRequest.java            |    27 +-
 .../iotsitewise/model/CreatePortalResult.java |    35 +-
 .../CreatePresignedPortalUrlRequest.java      |   195 -
 .../model/CreatePresignedPortalUrlResult.java |   151 -
 .../model/DescribeAssetModelResult.java       |   123 +-
 .../model/DescribeAssetPropertyResult.java    |    89 +-
 .../model/DescribeAssetResult.java            |   123 +-
 .../model/DescribePortalResult.java           |    35 +-
 .../iotsitewise/model/IAMUserIdentity.java    |    21 +-
 .../model/ListAssetRelationshipsRequest.java  |   379 +
 .../model/ListAssetRelationshipsResult.java   |   209 +
 .../iotsitewise/model/PortalSummary.java      |    35 +-
 .../iotsitewise/model/PropertyDataType.java   |     3 +-
 .../iotsitewise/model/TraversalType.java      |    59 +
 .../model/UnauthorizedException.java          |    36 +
 .../model/UpdateAssetModelRequest.java        |   101 +
 .../AssetCompositeModelJsonUnmarshaller.java  |    88 +
 .../AssetCompositeModelMarshaller.java        |    65 +
 ...> AssetHierarchyInfoJsonUnmarshaller.java} |    26 +-
 ...java => AssetHierarchyInfoMarshaller.java} |    24 +-
 ...positeModelDefinitionJsonUnmarshaller.java |    89 +
 ...delCompositeModelDefinitionMarshaller.java |    65 +
 ...etModelCompositeModelJsonUnmarshaller.java |    88 +
 .../AssetModelCompositeModelMarshaller.java   |    65 +
 ...delPropertyDefinitionJsonUnmarshaller.java |     4 +
 ...ssetModelPropertyDefinitionMarshaller.java |     3 +
 .../AssetModelPropertyJsonUnmarshaller.java   |     4 +
 .../AssetModelPropertyMarshaller.java         |     3 +
 .../AssetPropertyJsonUnmarshaller.java        |     4 +
 .../transform/AssetPropertyMarshaller.java    |     3 +
 ...etRelationshipSummaryJsonUnmarshaller.java |    78 +
 .../AssetRelationshipSummaryMarshaller.java   |    58 +
 ...ompositeModelPropertyJsonUnmarshaller.java |    82 +
 .../CompositeModelPropertyMarshaller.java     |    61 +
 .../CreateAssetModelRequestMarshaller.java    |     3 +
 ...cribeAssetModelResultJsonUnmarshaller.java |     7 +
 ...beAssetPropertyResultJsonUnmarshaller.java |     4 +
 .../DescribeAssetResultJsonUnmarshaller.java  |     6 +
 ...stAssetRelationshipsRequestMarshaller.java |    64 +
 ...lationshipsRequestProtocolMarshaller.java} |    18 +-
 ...etRelationshipsResultJsonUnmarshaller.java |    81 +
 .../UnauthorizedExceptionUnmarshaller.java    |    74 +
 .../UpdateAssetModelRequestMarshaller.java    |     3 +
 aws-java-sdk-iotthingsgraph/pom.xml           |     2 +-
 aws-java-sdk-ivs/pom.xml                      |     2 +-
 aws-java-sdk-kafka/pom.xml                    |     2 +-
 aws-java-sdk-kendra/pom.xml                   |     2 +-
 aws-java-sdk-kinesis/pom.xml                  |     2 +-
 aws-java-sdk-kinesisanalyticsv2/pom.xml       |     2 +-
 aws-java-sdk-kinesisvideo/pom.xml             |     2 +-
 .../pom.xml                                   |     2 +-
 aws-java-sdk-kms/pom.xml                      |     2 +-
 aws-java-sdk-lakeformation/pom.xml            |     2 +-
 aws-java-sdk-lambda/pom.xml                   |     2 +-
 aws-java-sdk-lex/pom.xml                      |     2 +-
 aws-java-sdk-lexmodelbuilding/pom.xml         |     2 +-
 aws-java-sdk-licensemanager/pom.xml           |     2 +-
 aws-java-sdk-lightsail/pom.xml                |     2 +-
 aws-java-sdk-logs/pom.xml                     |     2 +-
 aws-java-sdk-lookoutforvision/pom.xml         |     2 +-
 aws-java-sdk-machinelearning/pom.xml          |     2 +-
 aws-java-sdk-macie/pom.xml                    |     2 +-
 aws-java-sdk-macie2/pom.xml                   |     2 +-
 aws-java-sdk-managedblockchain/pom.xml        |     2 +-
 aws-java-sdk-marketplacecatalog/pom.xml       |     2 +-
 .../pom.xml                                   |     2 +-
 aws-java-sdk-marketplaceentitlement/pom.xml   |     2 +-
 .../pom.xml                                   |     2 +-
 aws-java-sdk-mechanicalturkrequester/pom.xml  |     2 +-
 aws-java-sdk-mediaconnect/pom.xml             |     2 +-
 aws-java-sdk-mediaconvert/pom.xml             |     2 +-
 aws-java-sdk-medialive/pom.xml                |     2 +-
 aws-java-sdk-mediapackage/pom.xml             |     2 +-
 aws-java-sdk-mediapackagevod/pom.xml          |     2 +-
 aws-java-sdk-mediastore/pom.xml               |     2 +-
 aws-java-sdk-mediastoredata/pom.xml           |     2 +-
 aws-java-sdk-mediatailor/pom.xml              |     2 +-
 aws-java-sdk-migrationhub/pom.xml             |     2 +-
 aws-java-sdk-migrationhubconfig/pom.xml       |     2 +-
 aws-java-sdk-mobile/pom.xml                   |     2 +-
 aws-java-sdk-models/pom.xml                   |     2 +-
 ...42AppRegistry-2020-06-24-intermediate.json |     2 +-
 .../models/a4b-2017-11-09-intermediate.json   |     2 +-
 ...ccessanalyzer-2019-11-01-intermediate.json |     2 +-
 .../amplify-2017-07-25-intermediate.json      |     2 +-
 ...i.mediatailor-2018-04-23-intermediate.json |     2 +-
 ...api.sagemaker-2017-07-24-intermediate.json |     2 +-
 .../autoscaling-2011-01-01-intermediate.json  |   204 +-
 .../models/autoscaling-2011-01-01-model.json  |   101 +-
 ...scaling-plans-2018-01-06-intermediate.json |     2 +-
 .../backup-2018-11-15-intermediate.json       |     2 +-
 .../models/ce-2017-10-25-intermediate.json    |     2 +-
 .../models/chime-2018-05-01-intermediate.json |     2 +-
 .../cloud9-2017-09-23-intermediate.json       |     2 +-
 .../cloudtrail-2013-11-01-intermediate.json   |   379 +-
 .../models/cloudtrail-2013-11-01-model.json   |    98 +-
 ...r-connections-2019-12-01-intermediate.json |     2 +-
 ...rehendmedical-2018-10-30-intermediate.json |     2 +-
 ...ute-optimizer-2019-11-01-intermediate.json |     2 +-
 ...ctparticipant-2018-09-07-intermediate.json |     2 +-
 ...omer-profiles-2020-08-15-intermediate.json |     2 +-
 ...data.jobs.iot-2017-09-29-intermediate.json |     2 +-
 .../dataexchange-2017-07-25-intermediate.json |     2 +-
 .../models/dax-2017-04-19-intermediate.json   |     2 +-
 ...ces.iot1click-2018-05-14-intermediate.json |     2 +-
 .../models/dlm-2018-01-12-intermediate.json   |     2 +-
 .../models/docdb-2014-10-31-intermediate.json |     2 +-
 .../models/ebs-2019-11-02-intermediate.json   |     2 +-
 ...tance-connect-2018-04-02-intermediate.json |     2 +-
 .../ecr-public-2020-10-30-intermediate.json   |     2 +-
 .../models/eks-2017-11-01-intermediate.json   |     2 +-
 ...mr-containers-2020-10-01-intermediate.json |     2 +-
 ...t.marketplace-2017-01-11-intermediate.json |     2 +-
 .../eventbridge-2015-10-07-intermediate.json  |     2 +-
 .../models/fsx-2018-03-01-intermediate.json   |     2 +-
 ...alaccelerator-2018-08-08-intermediate.json |     2 +-
 .../guardduty-2017-11-28-intermediate.json    |   702 +-
 .../models/guardduty-2017-11-28-model.json    |    86 +-
 .../healthlake-2017-07-01-intermediate.json   |     2 +-
 ...identitystore-2020-06-15-intermediate.json |     2 +-
 .../iotsitewise-2019-12-02-intermediate.json  | 45896 +++++++++-------
 .../models/iotsitewise-2019-12-02-model.json  |   363 +-
 .../models/kafka-2018-11-14-intermediate.json |     2 +-
 ...deo-signaling-2019-12-04-intermediate.json |     2 +-
 ...lakeformation-2017-03-31-intermediate.json |     2 +-
 ...lookoutvision-2020-11-20-intermediate.json |     2 +-
 .../models/macie-2017-12-19-intermediate.json |     2 +-
 .../macie2-2020-01-01-intermediate.json       |     2 +-
 ...gedblockchain-2018-09-24-intermediate.json |     2 +-
 ...place-catalog-2018-09-17-intermediate.json |     2 +-
 .../mediaconnect-2018-11-14-intermediate.json |     2 +-
 .../mediapackage-2017-10-12-intermediate.json |     2 +-
 ...iapackage-vod-2018-11-07-intermediate.json |     2 +-
 .../models/mgh-2017-05-31-intermediate.json   |     2 +-
 ...ionhub-config-2019-06-30-intermediate.json |     2 +-
 .../mobile-2017-07-01-intermediate.json       |     2 +-
 .../models.lex-2017-04-19-intermediate.json   |     2 +-
 .../monitoring-2010-08-01-intermediate.json   |    78 +-
 .../models/monitoring-2010-08-01-model.json   |    12 +-
 .../models/mq-2017-11-27-intermediate.json    |     2 +-
 ...urk-requester-2017-01-17-intermediate.json |     2 +-
 .../models/mwaa-2020-07-01-intermediate.json  |     2 +-
 .../neptune-2014-10-31-intermediate.json      |     2 +-
 ...work-firewall-2020-11-12-intermediate.json |     2 +-
 .../models/pi-2018-02-27-intermediate.json    |   372 +-
 .../resources/models/pi-2018-02-27-model.json |    40 +-
 .../models/qldb-2019-01-02-intermediate.json  |     2 +-
 .../models/ram-2018-01-04-intermediate.json   |     2 +-
 .../rds-data-2018-08-01-intermediate.json     |     2 +-
 ...redshift-data-2019-12-20-intermediate.json |     2 +-
 .../robomaker-2018-06-29-intermediate.json    |     2 +-
 ...ute53resolver-2018-04-01-intermediate.json |     2 +-
 .../s3-control-2018-08-20-intermediate.json   |     2 +-
 ...store-runtime-2020-07-01-intermediate.json |     2 +-
 .../savingsplans-2019-06-28-intermediate.json |     2 +-
 ...erverlessrepo-2017-09-08-intermediate.json |     2 +-
 .../models/sso-2019-06-10-intermediate.json   |     2 +-
 .../sso-admin-2020-07-20-intermediate.json    |     2 +-
 .../sso-oidc-2019-06-10-intermediate.json     |     2 +-
 .../synthetics-2017-10-11-intermediate.json   |     2 +-
 .../tagging-2017-01-26-intermediate.json      |     2 +-
 .../textract-2018-06-27-intermediate.json     |     2 +-
 .../translate-2017-07-01-intermediate.json    |     2 +-
 .../models/wafv2-2019-07-29-intermediate.json |     2 +-
 .../workdocs-2016-05-01-intermediate.json     |     2 +-
 .../workmail-2017-10-01-intermediate.json     |     2 +-
 ...ilmessageflow-2019-05-01-intermediate.json |     2 +-
 aws-java-sdk-mq/pom.xml                       |     2 +-
 aws-java-sdk-mwaa/pom.xml                     |     2 +-
 aws-java-sdk-neptune/pom.xml                  |     2 +-
 aws-java-sdk-networkfirewall/pom.xml          |     2 +-
 aws-java-sdk-networkmanager/pom.xml           |     2 +-
 aws-java-sdk-opensdk/pom.xml                  |     4 +-
 aws-java-sdk-opsworks/pom.xml                 |     2 +-
 aws-java-sdk-opsworkscm/pom.xml               |     2 +-
 aws-java-sdk-organizations/pom.xml            |     2 +-
 aws-java-sdk-osgi/pom.xml                     |     2 +-
 aws-java-sdk-outposts/pom.xml                 |     2 +-
 aws-java-sdk-personalize/pom.xml              |     2 +-
 aws-java-sdk-personalizeevents/pom.xml        |     2 +-
 aws-java-sdk-personalizeruntime/pom.xml       |     2 +-
 aws-java-sdk-pi/pom.xml                       |     2 +-
 .../java/com/amazonaws/services/pi/AWSPI.java |    52 +-
 .../com/amazonaws/services/pi/AWSPIAsync.java |    64 +-
 .../services/pi/AWSPIAsyncClient.java         |    40 +-
 .../amazonaws/services/pi/AWSPIClient.java    |    52 +-
 .../model/DescribeDimensionKeysRequest.java   |   237 +-
 .../services/pi/model/DimensionGroup.java     |   626 +-
 .../pi/model/GetResourceMetricsRequest.java   |    86 +-
 .../pi/model/GetResourceMetricsResult.java    |    20 +-
 .../pi/model/MetricKeyDataPoints.java         |     2 +-
 .../services/pi/model/MetricQuery.java        |    56 +
 .../pi/model/ResponseResourceMetricKey.java   |    56 +
 .../amazonaws/services/pi/package-info.java   |    40 +-
 aws-java-sdk-pinpoint/pom.xml                 |     2 +-
 aws-java-sdk-pinpointemail/pom.xml            |     2 +-
 aws-java-sdk-pinpointsmsvoice/pom.xml         |     2 +-
 aws-java-sdk-polly/pom.xml                    |     2 +-
 aws-java-sdk-pricing/pom.xml                  |     2 +-
 aws-java-sdk-qldb/pom.xml                     |     2 +-
 aws-java-sdk-qldbsession/pom.xml              |     2 +-
 aws-java-sdk-quicksight/pom.xml               |     2 +-
 aws-java-sdk-ram/pom.xml                      |     2 +-
 aws-java-sdk-rds/pom.xml                      |     2 +-
 aws-java-sdk-rdsdata/pom.xml                  |     2 +-
 aws-java-sdk-redshift/pom.xml                 |     2 +-
 aws-java-sdk-redshiftdataapi/pom.xml          |     2 +-
 aws-java-sdk-rekognition/pom.xml              |     2 +-
 aws-java-sdk-resourcegroups/pom.xml           |     2 +-
 aws-java-sdk-resourcegroupstaggingapi/pom.xml |     2 +-
 aws-java-sdk-robomaker/pom.xml                |     2 +-
 aws-java-sdk-route53/pom.xml                  |     2 +-
 aws-java-sdk-route53resolver/pom.xml          |     2 +-
 aws-java-sdk-s3/pom.xml                       |     2 +-
 aws-java-sdk-s3control/pom.xml                |     2 +-
 aws-java-sdk-s3outposts/pom.xml               |     2 +-
 aws-java-sdk-sagemaker/pom.xml                |     2 +-
 aws-java-sdk-sagemakeredgemanager/pom.xml     |     2 +-
 .../pom.xml                                   |     2 +-
 aws-java-sdk-sagemakerruntime/pom.xml         |     2 +-
 aws-java-sdk-savingsplans/pom.xml             |     2 +-
 aws-java-sdk-schemas/pom.xml                  |     2 +-
 aws-java-sdk-secretsmanager/pom.xml           |     2 +-
 aws-java-sdk-securityhub/pom.xml              |     2 +-
 .../pom.xml                                   |     2 +-
 aws-java-sdk-servermigration/pom.xml          |     2 +-
 aws-java-sdk-servicecatalog/pom.xml           |     2 +-
 aws-java-sdk-servicediscovery/pom.xml         |     2 +-
 aws-java-sdk-servicequotas/pom.xml            |     2 +-
 aws-java-sdk-ses/pom.xml                      |     2 +-
 aws-java-sdk-sesv2/pom.xml                    |     2 +-
 aws-java-sdk-shield/pom.xml                   |     2 +-
 aws-java-sdk-signer/pom.xml                   |     2 +-
 aws-java-sdk-simpledb/pom.xml                 |     2 +-
 aws-java-sdk-simpleworkflow/pom.xml           |     2 +-
 aws-java-sdk-snowball/pom.xml                 |     2 +-
 aws-java-sdk-sns/pom.xml                      |     2 +-
 aws-java-sdk-sqs/pom.xml                      |     2 +-
 aws-java-sdk-ssm/pom.xml                      |     2 +-
 aws-java-sdk-sso/pom.xml                      |     2 +-
 aws-java-sdk-ssoadmin/pom.xml                 |     2 +-
 aws-java-sdk-ssooidc/pom.xml                  |     2 +-
 aws-java-sdk-stepfunctions/pom.xml            |     2 +-
 aws-java-sdk-storagegateway/pom.xml           |     2 +-
 aws-java-sdk-sts/pom.xml                      |     2 +-
 aws-java-sdk-support/pom.xml                  |     2 +-
 aws-java-sdk-synthetics/pom.xml               |     2 +-
 aws-java-sdk-test-utils/pom.xml               |     2 +-
 aws-java-sdk-textract/pom.xml                 |     2 +-
 aws-java-sdk-timestreamquery/pom.xml          |     2 +-
 aws-java-sdk-timestreamwrite/pom.xml          |     2 +-
 aws-java-sdk-transcribe/pom.xml               |     2 +-
 aws-java-sdk-transfer/pom.xml                 |     2 +-
 aws-java-sdk-translate/pom.xml                |     2 +-
 aws-java-sdk-waf/pom.xml                      |     2 +-
 aws-java-sdk-wafv2/pom.xml                    |     2 +-
 aws-java-sdk-workdocs/pom.xml                 |     2 +-
 aws-java-sdk-worklink/pom.xml                 |     2 +-
 aws-java-sdk-workmail/pom.xml                 |     2 +-
 aws-java-sdk-workmailmessageflow/pom.xml      |     2 +-
 aws-java-sdk-workspaces/pom.xml               |     2 +-
 aws-java-sdk-xray/pom.xml                     |     2 +-
 aws-java-sdk/pom.xml                          |     2 +-
 jmespath-java/pom.xml                         |     2 +-
 pom.xml                                       |     2 +-
 release.properties                            |     2 +-
 456 files changed, 35007 insertions(+), 22998 deletions(-)
 create mode 100644 aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/CloudTrailInvalidClientTokenIdException.java
 create mode 100644 aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/transform/CloudTrailInvalidClientTokenIdExceptionUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetCompositeModel.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetHierarchyInfo.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModel.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModelDefinition.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipSummary.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipType.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CompositeModelProperty.java
 delete mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlRequest.java
 delete mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlResult.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsRequest.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsResult.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/TraversalType.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UnauthorizedException.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelMarshaller.java
 rename aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/{CreatePresignedPortalUrlResultJsonUnmarshaller.java => AssetHierarchyInfoJsonUnmarshaller.java} (66%)
 rename aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/{CreatePresignedPortalUrlRequestMarshaller.java => AssetHierarchyInfoMarshaller.java} (52%)
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionMarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelMarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryMarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyMarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestMarshaller.java
 rename aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/{CreatePresignedPortalUrlRequestProtocolMarshaller.java => ListAssetRelationshipsRequestProtocolMarshaller.java} (63%)
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsResultJsonUnmarshaller.java
 create mode 100644 aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UnauthorizedExceptionUnmarshaller.java

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f415ada7b141..56a09a062038 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,28 @@
+# __1.11.918__ __2020-12-11__
+## __AWS CloudTrail__
+  - ### Features
+    - CloudTrailInvalidClientTokenIdException is now thrown when a call results in the InvalidClientTokenId error code. The Name parameter of the AdvancedEventSelector data type is now optional.
+
+## __AWS IoT SiteWise__
+  - ### Features
+    - Added the ListAssetRelationships operation and support for composite asset models, which represent structured sets of properties within asset models.
+
+## __AWS Performance Insights__
+  - ### Features
+    - You can group DB load according to the dimension groups for database, application, and session type. Amazon RDS also supports the dimensions db.name, db.application.name, and db.session_type.name.
+
+## __Amazon CloudWatch__
+  - ### Features
+    - Documentation updates for monitoring
+
+## __Amazon GuardDuty__
+  - ### Features
+    - Documentation updates for GuardDuty
+
+## __Auto Scaling__
+  - ### Features
+    - Documentation updates and corrections for Amazon EC2 Auto Scaling API Reference and SDKs.
+
 # __1.11.917__ __2020-12-10__
 ## __AWS Network Manager__
   - ### Features
diff --git a/README.md b/README.md
index b001ca7798ce..f3a5d7292319 100644
--- a/README.md
+++ b/README.md
@@ -48,7 +48,7 @@ dependencies.
     <dependency>
       <groupId>com.amazonaws</groupId>
       <artifactId>aws-java-sdk-bom</artifactId>
-      <version>1.11.917</version>
+      <version>1.11.918</version>
       <type>pom</type>
       <scope>import</scope>
     </dependency>
diff --git a/aws-java-sdk-accessanalyzer/pom.xml b/aws-java-sdk-accessanalyzer/pom.xml
index 0fcccb719f0a..91c76f2f17e3 100644
--- a/aws-java-sdk-accessanalyzer/pom.xml
+++ b/aws-java-sdk-accessanalyzer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-accessanalyzer</artifactId>
diff --git a/aws-java-sdk-acm/pom.xml b/aws-java-sdk-acm/pom.xml
index 8c394b7c99b7..eeed2efcd0f1 100644
--- a/aws-java-sdk-acm/pom.xml
+++ b/aws-java-sdk-acm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-acm</artifactId>
diff --git a/aws-java-sdk-acmpca/pom.xml b/aws-java-sdk-acmpca/pom.xml
index bbe3669ad26b..93c04aeeecd9 100644
--- a/aws-java-sdk-acmpca/pom.xml
+++ b/aws-java-sdk-acmpca/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-acmpca</artifactId>
diff --git a/aws-java-sdk-alexaforbusiness/pom.xml b/aws-java-sdk-alexaforbusiness/pom.xml
index e03dff99dff5..1488e4b8d13b 100644
--- a/aws-java-sdk-alexaforbusiness/pom.xml
+++ b/aws-java-sdk-alexaforbusiness/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-alexaforbusiness</artifactId>
diff --git a/aws-java-sdk-amplify/pom.xml b/aws-java-sdk-amplify/pom.xml
index 10997efb9f42..612807db0a2c 100644
--- a/aws-java-sdk-amplify/pom.xml
+++ b/aws-java-sdk-amplify/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-amplify</artifactId>
diff --git a/aws-java-sdk-amplifybackend/pom.xml b/aws-java-sdk-amplifybackend/pom.xml
index b3310a9c08dd..f5a2e1497b65 100644
--- a/aws-java-sdk-amplifybackend/pom.xml
+++ b/aws-java-sdk-amplifybackend/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-amplifybackend</artifactId>
diff --git a/aws-java-sdk-api-gateway/pom.xml b/aws-java-sdk-api-gateway/pom.xml
index bcf184ee51b0..209128d062b4 100644
--- a/aws-java-sdk-api-gateway/pom.xml
+++ b/aws-java-sdk-api-gateway/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-api-gateway</artifactId>
diff --git a/aws-java-sdk-apigatewaymanagementapi/pom.xml b/aws-java-sdk-apigatewaymanagementapi/pom.xml
index bcba19301112..149618f5426f 100644
--- a/aws-java-sdk-apigatewaymanagementapi/pom.xml
+++ b/aws-java-sdk-apigatewaymanagementapi/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-apigatewaymanagementapi</artifactId>
diff --git a/aws-java-sdk-apigatewayv2/pom.xml b/aws-java-sdk-apigatewayv2/pom.xml
index 1cbfe7efcdbc..4b1d6d69c45a 100644
--- a/aws-java-sdk-apigatewayv2/pom.xml
+++ b/aws-java-sdk-apigatewayv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-apigatewayv2</artifactId>
diff --git a/aws-java-sdk-appconfig/pom.xml b/aws-java-sdk-appconfig/pom.xml
index b8410e57efcd..55d4cebcdeb1 100644
--- a/aws-java-sdk-appconfig/pom.xml
+++ b/aws-java-sdk-appconfig/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appconfig</artifactId>
diff --git a/aws-java-sdk-appflow/pom.xml b/aws-java-sdk-appflow/pom.xml
index f2ed516266e5..8f3e2873d824 100644
--- a/aws-java-sdk-appflow/pom.xml
+++ b/aws-java-sdk-appflow/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appflow</artifactId>
diff --git a/aws-java-sdk-appintegrations/pom.xml b/aws-java-sdk-appintegrations/pom.xml
index 83eb258259b7..0626833f3763 100644
--- a/aws-java-sdk-appintegrations/pom.xml
+++ b/aws-java-sdk-appintegrations/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appintegrations</artifactId>
diff --git a/aws-java-sdk-applicationautoscaling/pom.xml b/aws-java-sdk-applicationautoscaling/pom.xml
index 4f1b43a015bb..2a51c713d51e 100644
--- a/aws-java-sdk-applicationautoscaling/pom.xml
+++ b/aws-java-sdk-applicationautoscaling/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-applicationautoscaling</artifactId>
diff --git a/aws-java-sdk-applicationinsights/pom.xml b/aws-java-sdk-applicationinsights/pom.xml
index 2f594805626c..a644d200d406 100644
--- a/aws-java-sdk-applicationinsights/pom.xml
+++ b/aws-java-sdk-applicationinsights/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-applicationinsights</artifactId>
diff --git a/aws-java-sdk-appmesh/pom.xml b/aws-java-sdk-appmesh/pom.xml
index 80bdfb1e5b11..008fb47cb383 100644
--- a/aws-java-sdk-appmesh/pom.xml
+++ b/aws-java-sdk-appmesh/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appmesh</artifactId>
diff --git a/aws-java-sdk-appregistry/pom.xml b/aws-java-sdk-appregistry/pom.xml
index 5935b913a4ea..65c635344dfc 100644
--- a/aws-java-sdk-appregistry/pom.xml
+++ b/aws-java-sdk-appregistry/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appregistry</artifactId>
diff --git a/aws-java-sdk-appstream/pom.xml b/aws-java-sdk-appstream/pom.xml
index a964194820f5..cc86ea1b75d2 100644
--- a/aws-java-sdk-appstream/pom.xml
+++ b/aws-java-sdk-appstream/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appstream</artifactId>
diff --git a/aws-java-sdk-appsync/pom.xml b/aws-java-sdk-appsync/pom.xml
index 687bf588761d..0c6883a8c2af 100644
--- a/aws-java-sdk-appsync/pom.xml
+++ b/aws-java-sdk-appsync/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-appsync</artifactId>
diff --git a/aws-java-sdk-athena/pom.xml b/aws-java-sdk-athena/pom.xml
index 58a50ed6517c..2e392d454702 100644
--- a/aws-java-sdk-athena/pom.xml
+++ b/aws-java-sdk-athena/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-athena</artifactId>
diff --git a/aws-java-sdk-auditmanager/pom.xml b/aws-java-sdk-auditmanager/pom.xml
index e6900cbe6621..00cf293a606c 100644
--- a/aws-java-sdk-auditmanager/pom.xml
+++ b/aws-java-sdk-auditmanager/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-auditmanager</artifactId>
diff --git a/aws-java-sdk-augmentedairuntime/pom.xml b/aws-java-sdk-augmentedairuntime/pom.xml
index 8969e402aa64..816b58845322 100644
--- a/aws-java-sdk-augmentedairuntime/pom.xml
+++ b/aws-java-sdk-augmentedairuntime/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-augmentedairuntime</artifactId>
diff --git a/aws-java-sdk-autoscaling/pom.xml b/aws-java-sdk-autoscaling/pom.xml
index 236205e85eea..7edb8b011fc1 100644
--- a/aws-java-sdk-autoscaling/pom.xml
+++ b/aws-java-sdk-autoscaling/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-autoscaling</artifactId>
diff --git a/aws-java-sdk-autoscalingplans/pom.xml b/aws-java-sdk-autoscalingplans/pom.xml
index e2a4b2096dcd..676253bc2b1e 100644
--- a/aws-java-sdk-autoscalingplans/pom.xml
+++ b/aws-java-sdk-autoscalingplans/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-autoscalingplans</artifactId>
diff --git a/aws-java-sdk-backup/pom.xml b/aws-java-sdk-backup/pom.xml
index 56a1dc83521e..9b087dce211f 100644
--- a/aws-java-sdk-backup/pom.xml
+++ b/aws-java-sdk-backup/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-backup</artifactId>
diff --git a/aws-java-sdk-batch/pom.xml b/aws-java-sdk-batch/pom.xml
index ef40635106bf..c337653d2f22 100644
--- a/aws-java-sdk-batch/pom.xml
+++ b/aws-java-sdk-batch/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-batch</artifactId>
diff --git a/aws-java-sdk-bom/pom.xml b/aws-java-sdk-bom/pom.xml
index 231d596b72a9..67c2726924bf 100644
--- a/aws-java-sdk-bom/pom.xml
+++ b/aws-java-sdk-bom/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-bom</artifactId>
diff --git a/aws-java-sdk-braket/pom.xml b/aws-java-sdk-braket/pom.xml
index bf19bbb522c6..6b26dc06e60b 100644
--- a/aws-java-sdk-braket/pom.xml
+++ b/aws-java-sdk-braket/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-braket</artifactId>
diff --git a/aws-java-sdk-budgets/pom.xml b/aws-java-sdk-budgets/pom.xml
index 799277083c71..43c50c33fa3f 100644
--- a/aws-java-sdk-budgets/pom.xml
+++ b/aws-java-sdk-budgets/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-budgets</artifactId>
diff --git a/aws-java-sdk-bundle/pom.xml b/aws-java-sdk-bundle/pom.xml
index dbb2751807e7..227b4acee341 100644
--- a/aws-java-sdk-bundle/pom.xml
+++ b/aws-java-sdk-bundle/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>com.amazonaws</groupId>
         <artifactId>aws-java-sdk-pom</artifactId>
-        <version>1.11.917</version>
+        <version>1.11.918</version>
     </parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-bundle</artifactId>
@@ -24,7 +24,7 @@
         <artifactId>aws-java-sdk</artifactId>
         <groupId>com.amazonaws</groupId>
         <optional>false</optional>
-        <version>1.11.917</version>
+        <version>1.11.918</version>
     </dependency>
 </dependencies>
 
diff --git a/aws-java-sdk-chime/pom.xml b/aws-java-sdk-chime/pom.xml
index 40d90db98498..41edccd0c3f6 100644
--- a/aws-java-sdk-chime/pom.xml
+++ b/aws-java-sdk-chime/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-chime</artifactId>
diff --git a/aws-java-sdk-cloud9/pom.xml b/aws-java-sdk-cloud9/pom.xml
index b8c0684cfcce..ed6069780140 100644
--- a/aws-java-sdk-cloud9/pom.xml
+++ b/aws-java-sdk-cloud9/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloud9</artifactId>
diff --git a/aws-java-sdk-clouddirectory/pom.xml b/aws-java-sdk-clouddirectory/pom.xml
index d57e0805ce1c..23816e348c4c 100644
--- a/aws-java-sdk-clouddirectory/pom.xml
+++ b/aws-java-sdk-clouddirectory/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-clouddirectory</artifactId>
diff --git a/aws-java-sdk-cloudformation/pom.xml b/aws-java-sdk-cloudformation/pom.xml
index 8122d6e5c3a1..03abf377916b 100644
--- a/aws-java-sdk-cloudformation/pom.xml
+++ b/aws-java-sdk-cloudformation/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudformation</artifactId>
diff --git a/aws-java-sdk-cloudfront/pom.xml b/aws-java-sdk-cloudfront/pom.xml
index f73c5fd17579..3f2e691a8cf9 100644
--- a/aws-java-sdk-cloudfront/pom.xml
+++ b/aws-java-sdk-cloudfront/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudfront</artifactId>
diff --git a/aws-java-sdk-cloudhsm/pom.xml b/aws-java-sdk-cloudhsm/pom.xml
index d1fcad1265bd..1cd5fa5958a2 100644
--- a/aws-java-sdk-cloudhsm/pom.xml
+++ b/aws-java-sdk-cloudhsm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudhsm</artifactId>
diff --git a/aws-java-sdk-cloudhsmv2/pom.xml b/aws-java-sdk-cloudhsmv2/pom.xml
index 264d43b70dbf..1fdb8463b644 100644
--- a/aws-java-sdk-cloudhsmv2/pom.xml
+++ b/aws-java-sdk-cloudhsmv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudhsmv2</artifactId>
diff --git a/aws-java-sdk-cloudsearch/pom.xml b/aws-java-sdk-cloudsearch/pom.xml
index 72140be4b99e..4522ff67fc46 100644
--- a/aws-java-sdk-cloudsearch/pom.xml
+++ b/aws-java-sdk-cloudsearch/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudsearch</artifactId>
diff --git a/aws-java-sdk-cloudtrail/pom.xml b/aws-java-sdk-cloudtrail/pom.xml
index ad422d19915a..b0a60e437ced 100644
--- a/aws-java-sdk-cloudtrail/pom.xml
+++ b/aws-java-sdk-cloudtrail/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudtrail</artifactId>
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrail.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrail.java
index 7e7e9d01f07e..f9bcd14f20e9 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrail.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrail.java
@@ -300,6 +300,10 @@ public interface AWSCloudTrail {
      *         <a href=
      *         "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html"
      *         >Prepare For Creating a Trail For Your Organization</a>.
+     * @throws CloudTrailInvalidClientTokenIdException
+     *         This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This
+     *         can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is
+     *         in a suspended AWS account.
      * @sample AWSCloudTrail.CreateTrail
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/CreateTrail" target="_top">AWS API
      *      Documentation</a>
@@ -895,14 +899,14 @@ public interface AWSCloudTrail {
 
     /**
      * <p>
-     * Configures an event selector for your trail. Use event selectors to further specify the management and data event
-     * settings for your trail. By default, trails created without specific event selectors will be configured to log
-     * all read and write management events, and no data events.
+     * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event
+     * selectors to specify management and data event settings for your trail. By default, trails created without
+     * specific event selectors are configured to log all read and write management events, and no data events.
      * </p>
      * <p>
-     * When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if
-     * the event matches any event selector, the trail processes and logs the event. If the event doesn't match any
-     * event selector, the trail doesn't log the event.
+     * When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all
+     * trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the
+     * event doesn't match any event selector, the trail doesn't log the event.
      * </p>
      * <p>
      * Example
@@ -930,22 +934,31 @@ public interface AWSCloudTrail {
      * </li>
      * <li>
      * <p>
-     * The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail
-     * doesn't log the event.
+     * The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't
+     * log the event.
      * </p>
      * </li>
      * </ol>
      * <p>
      * The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created;
-     * otherwise, an <code>InvalidHomeRegionException</code> is thrown.
+     * otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.
      * </p>
      * <p>
      * You can configure up to five event selectors for each trail. For more information, see <a href=
      * "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html"
-     * >Logging Data and Management Events for Trails </a> and <a
-     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Limits in AWS
+     * >Logging data and management events for trails </a> and <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Quotas in AWS
      * CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.
      * </p>
+     * <p>
+     * You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500
+     * values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or
+     * <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any
+     * existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     * href
+     * ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging
+     * data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
      * 
      * @param putEventSelectorsRequest
      * @return Result of the PutEventSelectors operation returned by the service.
@@ -986,10 +999,11 @@ public interface AWSCloudTrail {
      *         which the trail was created.
      * @throws InvalidEventSelectorsException
      *         This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of
-     *         event selectors or data resources that is not valid. The combination of event selectors and data
-     *         resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data
-     *         resources. These data resources can be distributed across event selectors, but the overall total cannot
-     *         exceed 250.</p>
+     *         event selectors, advanced event selectors, or data resources that is not valid. The combination of event
+     *         selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event
+     *         selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in
+     *         all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources
+     *         can be distributed across event selectors, but the overall total cannot exceed 250.</p>
      *         <p>
      *         You can:
      *         </p>
@@ -1008,6 +1022,11 @@ public interface AWSCloudTrail {
      *         </li>
      *         <li>
      *         <p>
+     *         Specify up to 500 values for all conditions in all advanced event selectors for a trail.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
      *         Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter
      *         with a value of <code>read-only</code> is invalid.
      *         </p>
@@ -1370,10 +1389,11 @@ public interface AWSCloudTrail {
      *         This exception is no longer in use.
      * @throws InvalidEventSelectorsException
      *         This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of
-     *         event selectors or data resources that is not valid. The combination of event selectors and data
-     *         resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data
-     *         resources. These data resources can be distributed across event selectors, but the overall total cannot
-     *         exceed 250.</p>
+     *         event selectors, advanced event selectors, or data resources that is not valid. The combination of event
+     *         selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event
+     *         selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in
+     *         all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources
+     *         can be distributed across event selectors, but the overall total cannot exceed 250.</p>
      *         <p>
      *         You can:
      *         </p>
@@ -1392,6 +1412,11 @@ public interface AWSCloudTrail {
      *         </li>
      *         <li>
      *         <p>
+     *         Specify up to 500 values for all conditions in all advanced event selectors for a trail.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
      *         Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter
      *         with a value of <code>read-only</code> is invalid.
      *         </p>
@@ -1449,6 +1474,10 @@ public interface AWSCloudTrail {
      *         <a href=
      *         "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html"
      *         >Prepare For Creating a Trail For Your Organization</a>.
+     * @throws CloudTrailInvalidClientTokenIdException
+     *         This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This
+     *         can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is
+     *         in a suspended AWS account.
      * @sample AWSCloudTrail.UpdateTrail
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/UpdateTrail" target="_top">AWS API
      *      Documentation</a>
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailAsync.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailAsync.java
index 841d8c2730d3..ec496f143fcb 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailAsync.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailAsync.java
@@ -741,14 +741,14 @@ java.util.concurrent.Future<LookupEventsResult> lookupEventsAsync(LookupEventsRe
 
     /**
      * <p>
-     * Configures an event selector for your trail. Use event selectors to further specify the management and data event
-     * settings for your trail. By default, trails created without specific event selectors will be configured to log
-     * all read and write management events, and no data events.
+     * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event
+     * selectors to specify management and data event settings for your trail. By default, trails created without
+     * specific event selectors are configured to log all read and write management events, and no data events.
      * </p>
      * <p>
-     * When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if
-     * the event matches any event selector, the trail processes and logs the event. If the event doesn't match any
-     * event selector, the trail doesn't log the event.
+     * When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all
+     * trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the
+     * event doesn't match any event selector, the trail doesn't log the event.
      * </p>
      * <p>
      * Example
@@ -776,22 +776,31 @@ java.util.concurrent.Future<LookupEventsResult> lookupEventsAsync(LookupEventsRe
      * </li>
      * <li>
      * <p>
-     * The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail
-     * doesn't log the event.
+     * The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't
+     * log the event.
      * </p>
      * </li>
      * </ol>
      * <p>
      * The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created;
-     * otherwise, an <code>InvalidHomeRegionException</code> is thrown.
+     * otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.
      * </p>
      * <p>
      * You can configure up to five event selectors for each trail. For more information, see <a href=
      * "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html"
-     * >Logging Data and Management Events for Trails </a> and <a
-     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Limits in AWS
+     * >Logging data and management events for trails </a> and <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Quotas in AWS
      * CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.
      * </p>
+     * <p>
+     * You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500
+     * values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or
+     * <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any
+     * existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     * href
+     * ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging
+     * data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
      * 
      * @param putEventSelectorsRequest
      * @return A Java Future containing the result of the PutEventSelectors operation returned by the service.
@@ -803,14 +812,14 @@ java.util.concurrent.Future<LookupEventsResult> lookupEventsAsync(LookupEventsRe
 
     /**
      * <p>
-     * Configures an event selector for your trail. Use event selectors to further specify the management and data event
-     * settings for your trail. By default, trails created without specific event selectors will be configured to log
-     * all read and write management events, and no data events.
+     * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event
+     * selectors to specify management and data event settings for your trail. By default, trails created without
+     * specific event selectors are configured to log all read and write management events, and no data events.
      * </p>
      * <p>
-     * When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if
-     * the event matches any event selector, the trail processes and logs the event. If the event doesn't match any
-     * event selector, the trail doesn't log the event.
+     * When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all
+     * trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the
+     * event doesn't match any event selector, the trail doesn't log the event.
      * </p>
      * <p>
      * Example
@@ -838,22 +847,31 @@ java.util.concurrent.Future<LookupEventsResult> lookupEventsAsync(LookupEventsRe
      * </li>
      * <li>
      * <p>
-     * The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail
-     * doesn't log the event.
+     * The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't
+     * log the event.
      * </p>
      * </li>
      * </ol>
      * <p>
      * The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created;
-     * otherwise, an <code>InvalidHomeRegionException</code> is thrown.
+     * otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.
      * </p>
      * <p>
      * You can configure up to five event selectors for each trail. For more information, see <a href=
      * "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html"
-     * >Logging Data and Management Events for Trails </a> and <a
-     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Limits in AWS
+     * >Logging data and management events for trails </a> and <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Quotas in AWS
      * CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.
      * </p>
+     * <p>
+     * You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500
+     * values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or
+     * <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any
+     * existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     * href
+     * ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging
+     * data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
      * 
      * @param putEventSelectorsRequest
      * @param asyncHandler
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailClient.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailClient.java
index 4decfd63b625..a1e72a4e41a7 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailClient.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/AWSCloudTrailClient.java
@@ -194,6 +194,9 @@ public class AWSCloudTrailClient extends AmazonWebServiceClient implements AWSCl
                     .addErrorMetadata(
                             new JsonErrorShapeMetadata().withErrorCode("InvalidS3PrefixException").withExceptionUnmarshaller(
                                     com.amazonaws.services.cloudtrail.model.transform.InvalidS3PrefixExceptionUnmarshaller.getInstance()))
+                    .addErrorMetadata(
+                            new JsonErrorShapeMetadata().withErrorCode("CloudTrailInvalidClientTokenIdException").withExceptionUnmarshaller(
+                                    com.amazonaws.services.cloudtrail.model.transform.CloudTrailInvalidClientTokenIdExceptionUnmarshaller.getInstance()))
                     .addErrorMetadata(
                             new JsonErrorShapeMetadata().withErrorCode("InvalidInsightSelectorsException").withExceptionUnmarshaller(
                                     com.amazonaws.services.cloudtrail.model.transform.InvalidInsightSelectorsExceptionUnmarshaller.getInstance()))
@@ -652,6 +655,10 @@ final AddTagsResult executeAddTags(AddTagsRequest addTagsRequest) {
      *         <a href=
      *         "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html"
      *         >Prepare For Creating a Trail For Your Organization</a>.
+     * @throws CloudTrailInvalidClientTokenIdException
+     *         This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This
+     *         can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is
+     *         in a suspended AWS account.
      * @sample AWSCloudTrail.CreateTrail
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/CreateTrail" target="_top">AWS API
      *      Documentation</a>
@@ -1692,14 +1699,14 @@ public LookupEventsResult lookupEvents() {
 
     /**
      * <p>
-     * Configures an event selector for your trail. Use event selectors to further specify the management and data event
-     * settings for your trail. By default, trails created without specific event selectors will be configured to log
-     * all read and write management events, and no data events.
+     * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event
+     * selectors to specify management and data event settings for your trail. By default, trails created without
+     * specific event selectors are configured to log all read and write management events, and no data events.
      * </p>
      * <p>
-     * When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if
-     * the event matches any event selector, the trail processes and logs the event. If the event doesn't match any
-     * event selector, the trail doesn't log the event.
+     * When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all
+     * trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the
+     * event doesn't match any event selector, the trail doesn't log the event.
      * </p>
      * <p>
      * Example
@@ -1727,22 +1734,31 @@ public LookupEventsResult lookupEvents() {
      * </li>
      * <li>
      * <p>
-     * The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail
-     * doesn't log the event.
+     * The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't
+     * log the event.
      * </p>
      * </li>
      * </ol>
      * <p>
      * The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created;
-     * otherwise, an <code>InvalidHomeRegionException</code> is thrown.
+     * otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.
      * </p>
      * <p>
      * You can configure up to five event selectors for each trail. For more information, see <a href=
      * "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html"
-     * >Logging Data and Management Events for Trails </a> and <a
-     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Limits in AWS
+     * >Logging data and management events for trails </a> and <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html">Quotas in AWS
      * CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.
      * </p>
+     * <p>
+     * You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500
+     * values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or
+     * <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any
+     * existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     * href
+     * ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging
+     * data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
      * 
      * @param putEventSelectorsRequest
      * @return Result of the PutEventSelectors operation returned by the service.
@@ -1783,10 +1799,11 @@ public LookupEventsResult lookupEvents() {
      *         which the trail was created.
      * @throws InvalidEventSelectorsException
      *         This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of
-     *         event selectors or data resources that is not valid. The combination of event selectors and data
-     *         resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data
-     *         resources. These data resources can be distributed across event selectors, but the overall total cannot
-     *         exceed 250.</p>
+     *         event selectors, advanced event selectors, or data resources that is not valid. The combination of event
+     *         selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event
+     *         selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in
+     *         all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources
+     *         can be distributed across event selectors, but the overall total cannot exceed 250.</p>
      *         <p>
      *         You can:
      *         </p>
@@ -1805,6 +1822,11 @@ public LookupEventsResult lookupEvents() {
      *         </li>
      *         <li>
      *         <p>
+     *         Specify up to 500 values for all conditions in all advanced event selectors for a trail.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
      *         Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter
      *         with a value of <code>read-only</code> is invalid.
      *         </p>
@@ -2372,10 +2394,11 @@ final StopLoggingResult executeStopLogging(StopLoggingRequest stopLoggingRequest
      *         This exception is no longer in use.
      * @throws InvalidEventSelectorsException
      *         This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of
-     *         event selectors or data resources that is not valid. The combination of event selectors and data
-     *         resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data
-     *         resources. These data resources can be distributed across event selectors, but the overall total cannot
-     *         exceed 250.</p>
+     *         event selectors, advanced event selectors, or data resources that is not valid. The combination of event
+     *         selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event
+     *         selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in
+     *         all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources
+     *         can be distributed across event selectors, but the overall total cannot exceed 250.</p>
      *         <p>
      *         You can:
      *         </p>
@@ -2394,6 +2417,11 @@ final StopLoggingResult executeStopLogging(StopLoggingRequest stopLoggingRequest
      *         </li>
      *         <li>
      *         <p>
+     *         Specify up to 500 values for all conditions in all advanced event selectors for a trail.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
      *         Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter
      *         with a value of <code>read-only</code> is invalid.
      *         </p>
@@ -2451,6 +2479,10 @@ final StopLoggingResult executeStopLogging(StopLoggingRequest stopLoggingRequest
      *         <a href=
      *         "https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html"
      *         >Prepare For Creating a Trail For Your Organization</a>.
+     * @throws CloudTrailInvalidClientTokenIdException
+     *         This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This
+     *         can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is
+     *         in a suspended AWS account.
      * @sample AWSCloudTrail.UpdateTrail
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/UpdateTrail" target="_top">AWS API
      *      Documentation</a>
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedEventSelector.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedEventSelector.java
index 6bceaded3e19..dcd30c64b7d1 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedEventSelector.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedEventSelector.java
@@ -18,6 +18,48 @@
 import com.amazonaws.protocol.ProtocolMarshaller;
 
 /**
+ * <p>
+ * Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields.
+ * They help you control costs by logging only those events that are important to you. For more information about
+ * advanced event selectors, see <a
+ * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">Logging
+ * data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * <code>readOnly</code>
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * <code>eventSource</code>
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * <code>eventName</code>
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * <code>eventCategory</code>
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * <code>resources.type</code>
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * <code>resources.ARN</code>
+ * </p>
+ * </li>
+ * </ul>
+ * <p>
+ * You cannot apply both event selectors and advanced event selectors to a trail.
+ * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/AdvancedEventSelector" target="_top">AWS
  *      API Documentation</a>
@@ -25,12 +67,27 @@
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public class AdvancedEventSelector implements Serializable, Cloneable, StructuredPojo {
 
+    /**
+     * <p>
+     * An optional, descriptive name for an advanced event selector, such as "Log data events for only two S3 buckets".
+     * </p>
+     */
     private String name;
-
+    /**
+     * <p>
+     * Contains all selector statements in an advanced event selector.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<AdvancedFieldSelector> fieldSelectors;
 
     /**
+     * <p>
+     * An optional, descriptive name for an advanced event selector, such as "Log data events for only two S3 buckets".
+     * </p>
+     * 
      * @param name
+     *        An optional, descriptive name for an advanced event selector, such as
+     *        "Log data events for only two S3 buckets".
      */
 
     public void setName(String name) {
@@ -38,7 +95,12 @@ public void setName(String name) {
     }
 
     /**
-     * @return
+     * <p>
+     * An optional, descriptive name for an advanced event selector, such as "Log data events for only two S3 buckets".
+     * </p>
+     * 
+     * @return An optional, descriptive name for an advanced event selector, such as
+     *         "Log data events for only two S3 buckets".
      */
 
     public String getName() {
@@ -46,7 +108,13 @@ public String getName() {
     }
 
     /**
+     * <p>
+     * An optional, descriptive name for an advanced event selector, such as "Log data events for only two S3 buckets".
+     * </p>
+     * 
      * @param name
+     *        An optional, descriptive name for an advanced event selector, such as
+     *        "Log data events for only two S3 buckets".
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -56,7 +124,11 @@ public AdvancedEventSelector withName(String name) {
     }
 
     /**
-     * @return
+     * <p>
+     * Contains all selector statements in an advanced event selector.
+     * </p>
+     * 
+     * @return Contains all selector statements in an advanced event selector.
      */
 
     public java.util.List<AdvancedFieldSelector> getFieldSelectors() {
@@ -67,7 +139,12 @@ public java.util.List<AdvancedFieldSelector> getFieldSelectors() {
     }
 
     /**
+     * <p>
+     * Contains all selector statements in an advanced event selector.
+     * </p>
+     * 
      * @param fieldSelectors
+     *        Contains all selector statements in an advanced event selector.
      */
 
     public void setFieldSelectors(java.util.Collection<AdvancedFieldSelector> fieldSelectors) {
@@ -80,6 +157,9 @@ public void setFieldSelectors(java.util.Collection<AdvancedFieldSelector> fieldS
     }
 
     /**
+     * <p>
+     * Contains all selector statements in an advanced event selector.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setFieldSelectors(java.util.Collection)} or {@link #withFieldSelectors(java.util.Collection)} if you want
@@ -87,6 +167,7 @@ public void setFieldSelectors(java.util.Collection<AdvancedFieldSelector> fieldS
      * </p>
      * 
      * @param fieldSelectors
+     *        Contains all selector statements in an advanced event selector.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -101,7 +182,12 @@ public AdvancedEventSelector withFieldSelectors(AdvancedFieldSelector... fieldSe
     }
 
     /**
+     * <p>
+     * Contains all selector statements in an advanced event selector.
+     * </p>
+     * 
      * @param fieldSelectors
+     *        Contains all selector statements in an advanced event selector.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedFieldSelector.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedFieldSelector.java
index 3b7586c0327f..d6f9a12b53d8 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedFieldSelector.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/AdvancedFieldSelector.java
@@ -18,6 +18,9 @@
 import com.amazonaws.protocol.ProtocolMarshaller;
 
 /**
+ * <p>
+ * A single selector statement in an advanced event selector.
+ * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/AdvancedFieldSelector" target="_top">AWS
  *      API Documentation</a>
@@ -25,22 +28,268 @@
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public class AdvancedFieldSelector implements Serializable, Cloneable, StructuredPojo {
 
+    /**
+     * <p>
+     * A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>,
+     * <code>resources.type</code>, and <code>resources.ARN</code>.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or
+     * <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     * <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event
+     * logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by
+     * commas.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must
+     * be <code>Management</code> or <code>Data</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     * <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     * <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log
+     * data events on more than one resource type, add another selector.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     * <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the
+     * type you've specified in the template as the value of resources.type. For example, if resources.type equals
+     * <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional;
+     * do not exclude it.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/</code>
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     * </p>
+     * </li>
+     * </ul>
+     * <p>
+     * When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or
+     * <code>NotEquals</code>, the ARN must be in the following format:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     * </p>
+     * </li>
+     * </ul>
+     * </li>
+     * </ul>
+     */
     private String field;
-
+    /**
+     * <p>
+     * An operator that includes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>,
+     * <code>eventCategory</code>, and <code>resources.type</code> fields.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> equals;
-
+    /**
+     * <p>
+     * An operator that includes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> startsWith;
-
+    /**
+     * <p>
+     * An operator that includes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> endsWith;
-
+    /**
+     * <p>
+     * An operator that excludes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> notEquals;
-
+    /**
+     * <p>
+     * An operator that excludes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> notStartsWith;
-
+    /**
+     * <p>
+     * An operator that excludes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<String> notEndsWith;
 
     /**
+     * <p>
+     * A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>,
+     * <code>resources.type</code>, and <code>resources.ARN</code>.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or
+     * <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     * <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event
+     * logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by
+     * commas.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must
+     * be <code>Management</code> or <code>Data</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     * <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     * <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log
+     * data events on more than one resource type, add another selector.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     * <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the
+     * type you've specified in the template as the value of resources.type. For example, if resources.type equals
+     * <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional;
+     * do not exclude it.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/</code>
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     * </p>
+     * </li>
+     * </ul>
+     * <p>
+     * When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or
+     * <code>NotEquals</code>, the ARN must be in the following format:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     * </p>
+     * </li>
+     * </ul>
+     * </li>
+     * </ul>
+     * 
      * @param field
+     *        A field in an event record on which to filter events to be logged. Supported fields include
+     *        <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events),
+     *        <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code>
+     *        or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code>
+     *        events.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     *        <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data
+     *        event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field,
+     *        separated by commas.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the
+     *        value must be <code>Management</code> or <code>Data</code>.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     *        <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     *        <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector.
+     *        To log data events on more than one resource type, add another selector.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     *        <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of
+     *        the type you've specified in the template as the value of resources.type. For example, if resources.type
+     *        equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash
+     *        is intentional; do not exclude it.
+     *        </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:s3:::bucket_name/</code>
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     *        </p>
+     *        </li>
+     *        </ul>
+     *        <p>
+     *        When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to
+     *        <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:
+     *        </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     *        </p>
+     *        </li>
+     *        </ul>
+     *        </li>
      */
 
     public void setField(String field) {
@@ -48,7 +297,148 @@ public void setField(String field) {
     }
 
     /**
-     * @return
+     * <p>
+     * A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>,
+     * <code>resources.type</code>, and <code>resources.ARN</code>.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or
+     * <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     * <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event
+     * logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by
+     * commas.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must
+     * be <code>Management</code> or <code>Data</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     * <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     * <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log
+     * data events on more than one resource type, add another selector.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     * <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the
+     * type you've specified in the template as the value of resources.type. For example, if resources.type equals
+     * <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional;
+     * do not exclude it.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/</code>
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     * </p>
+     * </li>
+     * </ul>
+     * <p>
+     * When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or
+     * <code>NotEquals</code>, the ARN must be in the following format:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     * </p>
+     * </li>
+     * </ul>
+     * </li>
+     * </ul>
+     * 
+     * @return A field in an event record on which to filter events to be logged. Supported fields include
+     *         <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events),
+     *         <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p>
+     *         <ul>
+     *         <li>
+     *         <p>
+     *         <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code>
+     *         or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code>
+     *         events.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     *         <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data
+     *         event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field,
+     *         separated by commas.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the
+     *         value must be <code>Management</code> or <code>Data</code>.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use
+     *         the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code>
+     *         or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per
+     *         selector. To log data events on more than one resource type, add another selector.
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     *         <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource
+     *         of the type you've specified in the template as the value of resources.type. For example, if
+     *         resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The
+     *         trailing slash is intentional; do not exclude it.
+     *         </p>
+     *         <ul>
+     *         <li>
+     *         <p>
+     *         <code>arn:partition:s3:::bucket_name/</code>
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     *         </p>
+     *         </li>
+     *         </ul>
+     *         <p>
+     *         When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to
+     *         <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:
+     *         </p>
+     *         <ul>
+     *         <li>
+     *         <p>
+     *         <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     *         </p>
+     *         </li>
+     *         </ul>
+     *         </li>
      */
 
     public String getField() {
@@ -56,7 +446,149 @@ public String getField() {
     }
 
     /**
+     * <p>
+     * A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>,
+     * <code>resources.type</code>, and <code>resources.ARN</code>.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or
+     * <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     * <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event
+     * logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by
+     * commas.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must
+     * be <code>Management</code> or <code>Data</code>.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     * <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     * <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log
+     * data events on more than one resource type, add another selector.
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     * <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the
+     * type you've specified in the template as the value of resources.type. For example, if resources.type equals
+     * <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional;
+     * do not exclude it.
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/</code>
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     * </p>
+     * </li>
+     * </ul>
+     * <p>
+     * When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or
+     * <code>NotEquals</code>, the ARN must be in the following format:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     * </p>
+     * </li>
+     * </ul>
+     * </li>
+     * </ul>
+     * 
      * @param field
+     *        A field in an event record on which to filter events to be logged. Supported fields include
+     *        <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events),
+     *        <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code>
+     *        or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code>
+     *        events.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to
+     *        <code>NotEquals</code> <code>kms.amazonaws.com</code>.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data
+     *        event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field,
+     *        separated by commas.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the
+     *        value must be <code>Management</code> or <code>Data</code>.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the
+     *        <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or
+     *        <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector.
+     *        To log data events on more than one resource type, add another selector.
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use
+     *        <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of
+     *        the type you've specified in the template as the value of resources.type. For example, if resources.type
+     *        equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash
+     *        is intentional; do not exclude it.
+     *        </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:s3:::bucket_name/</code>
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:s3:::bucket_name/object_or_file_name/</code>
+     *        </p>
+     *        </li>
+     *        </ul>
+     *        <p>
+     *        When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to
+     *        <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:
+     *        </p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>arn:partition:lambda:region:account_ID:function:function_name</code>
+     *        </p>
+     *        </li>
+     *        </ul>
+     *        </li>
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -66,7 +598,15 @@ public AdvancedFieldSelector withField(String field) {
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that includes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>,
+     * <code>eventCategory</code>, and <code>resources.type</code> fields.
+     * </p>
+     * 
+     * @return An operator that includes events that match the exact value of the event record field specified as the
+     *         value of <code>Field</code>. This is the only valid operator that you can use with the
+     *         <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.
      */
 
     public java.util.List<String> getEquals() {
@@ -77,7 +617,16 @@ public java.util.List<String> getEquals() {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>,
+     * <code>eventCategory</code>, and <code>resources.type</code> fields.
+     * </p>
+     * 
      * @param equals
+     *        An operator that includes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>. This is the only valid operator that you can use with the
+     *        <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.
      */
 
     public void setEquals(java.util.Collection<String> equals) {
@@ -90,6 +639,11 @@ public void setEquals(java.util.Collection<String> equals) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>,
+     * <code>eventCategory</code>, and <code>resources.type</code> fields.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setEquals(java.util.Collection)} or {@link #withEquals(java.util.Collection)} if you want to override the
@@ -97,6 +651,9 @@ public void setEquals(java.util.Collection<String> equals) {
      * </p>
      * 
      * @param equals
+     *        An operator that includes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>. This is the only valid operator that you can use with the
+     *        <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -111,7 +668,16 @@ public AdvancedFieldSelector withEquals(String... equals) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>,
+     * <code>eventCategory</code>, and <code>resources.type</code> fields.
+     * </p>
+     * 
      * @param equals
+     *        An operator that includes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>. This is the only valid operator that you can use with the
+     *        <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -121,7 +687,13 @@ public AdvancedFieldSelector withEquals(java.util.Collection<String> equals) {
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that includes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
+     * @return An operator that includes events that match the first few characters of the event record field specified
+     *         as the value of <code>Field</code>.
      */
 
     public java.util.List<String> getStartsWith() {
@@ -132,7 +704,14 @@ public java.util.List<String> getStartsWith() {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param startsWith
+     *        An operator that includes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      */
 
     public void setStartsWith(java.util.Collection<String> startsWith) {
@@ -145,6 +724,10 @@ public void setStartsWith(java.util.Collection<String> startsWith) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setStartsWith(java.util.Collection)} or {@link #withStartsWith(java.util.Collection)} if you want to
@@ -152,6 +735,8 @@ public void setStartsWith(java.util.Collection<String> startsWith) {
      * </p>
      * 
      * @param startsWith
+     *        An operator that includes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -166,7 +751,14 @@ public AdvancedFieldSelector withStartsWith(String... startsWith) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param startsWith
+     *        An operator that includes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -176,7 +768,13 @@ public AdvancedFieldSelector withStartsWith(java.util.Collection<String> startsW
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that includes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
+     * @return An operator that includes events that match the last few characters of the event record field specified
+     *         as the value of <code>Field</code>.
      */
 
     public java.util.List<String> getEndsWith() {
@@ -187,7 +785,14 @@ public java.util.List<String> getEndsWith() {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param endsWith
+     *        An operator that includes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      */
 
     public void setEndsWith(java.util.Collection<String> endsWith) {
@@ -200,6 +805,10 @@ public void setEndsWith(java.util.Collection<String> endsWith) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setEndsWith(java.util.Collection)} or {@link #withEndsWith(java.util.Collection)} if you want to override
@@ -207,6 +816,8 @@ public void setEndsWith(java.util.Collection<String> endsWith) {
      * </p>
      * 
      * @param endsWith
+     *        An operator that includes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -221,7 +832,14 @@ public AdvancedFieldSelector withEndsWith(String... endsWith) {
     }
 
     /**
+     * <p>
+     * An operator that includes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param endsWith
+     *        An operator that includes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -231,7 +849,13 @@ public AdvancedFieldSelector withEndsWith(java.util.Collection<String> endsWith)
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that excludes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>.
+     * </p>
+     * 
+     * @return An operator that excludes events that match the exact value of the event record field specified as the
+     *         value of <code>Field</code>.
      */
 
     public java.util.List<String> getNotEquals() {
@@ -242,7 +866,14 @@ public java.util.List<String> getNotEquals() {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>.
+     * </p>
+     * 
      * @param notEquals
+     *        An operator that excludes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>.
      */
 
     public void setNotEquals(java.util.Collection<String> notEquals) {
@@ -255,6 +886,10 @@ public void setNotEquals(java.util.Collection<String> notEquals) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setNotEquals(java.util.Collection)} or {@link #withNotEquals(java.util.Collection)} if you want to
@@ -262,6 +897,8 @@ public void setNotEquals(java.util.Collection<String> notEquals) {
      * </p>
      * 
      * @param notEquals
+     *        An operator that excludes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -276,7 +913,14 @@ public AdvancedFieldSelector withNotEquals(String... notEquals) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the exact value of the event record field specified as the value of
+     * <code>Field</code>.
+     * </p>
+     * 
      * @param notEquals
+     *        An operator that excludes events that match the exact value of the event record field specified as the
+     *        value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -286,7 +930,13 @@ public AdvancedFieldSelector withNotEquals(java.util.Collection<String> notEqual
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that excludes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
+     * @return An operator that excludes events that match the first few characters of the event record field specified
+     *         as the value of <code>Field</code>.
      */
 
     public java.util.List<String> getNotStartsWith() {
@@ -297,7 +947,14 @@ public java.util.List<String> getNotStartsWith() {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param notStartsWith
+     *        An operator that excludes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      */
 
     public void setNotStartsWith(java.util.Collection<String> notStartsWith) {
@@ -310,6 +967,10 @@ public void setNotStartsWith(java.util.Collection<String> notStartsWith) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setNotStartsWith(java.util.Collection)} or {@link #withNotStartsWith(java.util.Collection)} if you want
@@ -317,6 +978,8 @@ public void setNotStartsWith(java.util.Collection<String> notStartsWith) {
      * </p>
      * 
      * @param notStartsWith
+     *        An operator that excludes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -331,7 +994,14 @@ public AdvancedFieldSelector withNotStartsWith(String... notStartsWith) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the first few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param notStartsWith
+     *        An operator that excludes events that match the first few characters of the event record field specified
+     *        as the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -341,7 +1011,13 @@ public AdvancedFieldSelector withNotStartsWith(java.util.Collection<String> notS
     }
 
     /**
-     * @return
+     * <p>
+     * An operator that excludes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
+     * @return An operator that excludes events that match the last few characters of the event record field specified
+     *         as the value of <code>Field</code>.
      */
 
     public java.util.List<String> getNotEndsWith() {
@@ -352,7 +1028,14 @@ public java.util.List<String> getNotEndsWith() {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param notEndsWith
+     *        An operator that excludes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      */
 
     public void setNotEndsWith(java.util.Collection<String> notEndsWith) {
@@ -365,6 +1048,10 @@ public void setNotEndsWith(java.util.Collection<String> notEndsWith) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setNotEndsWith(java.util.Collection)} or {@link #withNotEndsWith(java.util.Collection)} if you want to
@@ -372,6 +1059,8 @@ public void setNotEndsWith(java.util.Collection<String> notEndsWith) {
      * </p>
      * 
      * @param notEndsWith
+     *        An operator that excludes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -386,7 +1075,14 @@ public AdvancedFieldSelector withNotEndsWith(String... notEndsWith) {
     }
 
     /**
+     * <p>
+     * An operator that excludes events that match the last few characters of the event record field specified as the
+     * value of <code>Field</code>.
+     * </p>
+     * 
      * @param notEndsWith
+     *        An operator that excludes events that match the last few characters of the event record field specified as
+     *        the value of <code>Field</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/CloudTrailInvalidClientTokenIdException.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/CloudTrailInvalidClientTokenIdException.java
new file mode 100644
index 000000000000..ff3d19948c5c
--- /dev/null
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/CloudTrailInvalidClientTokenIdException.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.cloudtrail.model;
+
+import javax.annotation.Generated;
+
+/**
+ * <p>
+ * This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when
+ * you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended AWS account.
+ * </p>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class CloudTrailInvalidClientTokenIdException extends com.amazonaws.services.cloudtrail.model.AWSCloudTrailException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Constructs a new CloudTrailInvalidClientTokenIdException with the specified error message.
+     *
+     * @param message
+     *        Describes the error encountered.
+     */
+    public CloudTrailInvalidClientTokenIdException(String message) {
+        super(message);
+    }
+
+}
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/DataResource.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/DataResource.java
index 28adab332a1f..7cfad5b9d6eb 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/DataResource.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/DataResource.java
@@ -28,6 +28,10 @@
  * The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors,
  * but the total cannot exceed 250 across all selectors.
  * </p>
+ * <p>
+ * If you are using advanced event selectors, the maximum total number of values for all conditions, across all advanced
+ * event selectors for the trail, is 500.
+ * </p>
  * </note>
  * <p>
  * The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/EventSelector.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/EventSelector.java
index e1d94d630430..96dd112b8158 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/EventSelector.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/EventSelector.java
@@ -28,6 +28,9 @@
  * <p>
  * You can configure up to five event selectors for a trail.
  * </p>
+ * <p>
+ * You cannot apply both event selectors and advanced event selectors to a trail.
+ * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/EventSelector" target="_top">AWS API
  *      Documentation</a>
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/GetEventSelectorsResult.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/GetEventSelectorsResult.java
index 0c3ca5353620..e2aa15be8deb 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/GetEventSelectorsResult.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/GetEventSelectorsResult.java
@@ -35,7 +35,11 @@ public class GetEventSelectorsResult extends com.amazonaws.AmazonWebServiceResul
      * </p>
      */
     private com.amazonaws.internal.SdkInternalList<EventSelector> eventSelectors;
-
+    /**
+     * <p>
+     * The advanced event selectors that are configured for the trail.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<AdvancedEventSelector> advancedEventSelectors;
 
     /**
@@ -152,7 +156,11 @@ public GetEventSelectorsResult withEventSelectors(java.util.Collection<EventSele
     }
 
     /**
-     * @return
+     * <p>
+     * The advanced event selectors that are configured for the trail.
+     * </p>
+     * 
+     * @return The advanced event selectors that are configured for the trail.
      */
 
     public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
@@ -163,7 +171,12 @@ public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
     }
 
     /**
+     * <p>
+     * The advanced event selectors that are configured for the trail.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        The advanced event selectors that are configured for the trail.
      */
 
     public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector> advancedEventSelectors) {
@@ -176,6 +189,9 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
     }
 
     /**
+     * <p>
+     * The advanced event selectors that are configured for the trail.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setAdvancedEventSelectors(java.util.Collection)} or
@@ -183,6 +199,7 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
      * </p>
      * 
      * @param advancedEventSelectors
+     *        The advanced event selectors that are configured for the trail.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -197,7 +214,12 @@ public GetEventSelectorsResult withAdvancedEventSelectors(AdvancedEventSelector.
     }
 
     /**
+     * <p>
+     * The advanced event selectors that are configured for the trail.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        The advanced event selectors that are configured for the trail.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/InvalidEventSelectorsException.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/InvalidEventSelectorsException.java
index 243fbc7e5353..2d6a60d87503 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/InvalidEventSelectorsException.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/InvalidEventSelectorsException.java
@@ -16,10 +16,12 @@
 
 /**
  * <p>
- * This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors
- * or data resources that is not valid. The combination of event selectors and data resources is not valid. A trail can
- * have up to 5 event selectors. A trail is limited to 250 data resources. These data resources can be distributed
- * across event selectors, but the overall total cannot exceed 250.
+ * This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event
+ * selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or
+ * advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses
+ * advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is
+ * allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors,
+ * but the overall total cannot exceed 250.
  * </p>
  * <p>
  * You can:
@@ -39,6 +41,11 @@
  * </li>
  * <li>
  * <p>
+ * Specify up to 500 values for all conditions in all advanced event selectors for a trail.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
  * Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value
  * of <code>read-only</code> is invalid.
  * </p>
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsRequest.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsRequest.java
index 4b31550aadcf..b328383c6dcf 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsRequest.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsRequest.java
@@ -68,11 +68,24 @@ public class PutEventSelectorsRequest extends com.amazonaws.AmazonWebServiceRequ
     private String trailName;
     /**
      * <p>
-     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You
+     * can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     * <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any
+     * existing <code>AdvancedEventSelectors</code> are overwritten.
      * </p>
      */
     private com.amazonaws.internal.SdkInternalList<EventSelector> eventSelectors;
-
+    /**
+     * <p>
+     * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for
+     * your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can
+     * use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply
+     * <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For
+     * more information about advanced event selectors, see <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     * >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<AdvancedEventSelector> advancedEventSelectors;
 
     /**
@@ -324,11 +337,16 @@ public PutEventSelectorsRequest withTrailName(String trailName) {
 
     /**
      * <p>
-     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You
+     * can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     * <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any
+     * existing <code>AdvancedEventSelectors</code> are overwritten.
      * </p>
      * 
      * @return Specifies the settings for your event selectors. You can configure up to five event selectors for a
-     *         trail.
+     *         trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     *         <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a
+     *         trail, any existing <code>AdvancedEventSelectors</code> are overwritten.
      */
 
     public java.util.List<EventSelector> getEventSelectors() {
@@ -340,11 +358,17 @@ public java.util.List<EventSelector> getEventSelectors() {
 
     /**
      * <p>
-     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You
+     * can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     * <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any
+     * existing <code>AdvancedEventSelectors</code> are overwritten.
      * </p>
      * 
      * @param eventSelectors
      *        Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     *        You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     *        <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail,
+     *        any existing <code>AdvancedEventSelectors</code> are overwritten.
      */
 
     public void setEventSelectors(java.util.Collection<EventSelector> eventSelectors) {
@@ -358,7 +382,10 @@ public void setEventSelectors(java.util.Collection<EventSelector> eventSelectors
 
     /**
      * <p>
-     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You
+     * can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     * <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any
+     * existing <code>AdvancedEventSelectors</code> are overwritten.
      * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
@@ -368,6 +395,9 @@ public void setEventSelectors(java.util.Collection<EventSelector> eventSelectors
      * 
      * @param eventSelectors
      *        Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     *        You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     *        <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail,
+     *        any existing <code>AdvancedEventSelectors</code> are overwritten.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -383,11 +413,17 @@ public PutEventSelectorsRequest withEventSelectors(EventSelector... eventSelecto
 
     /**
      * <p>
-     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You
+     * can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     * <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any
+     * existing <code>AdvancedEventSelectors</code> are overwritten.
      * </p>
      * 
      * @param eventSelectors
      *        Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.
+     *        You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a
+     *        <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail,
+     *        any existing <code>AdvancedEventSelectors</code> are overwritten.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -397,7 +433,24 @@ public PutEventSelectorsRequest withEventSelectors(java.util.Collection<EventSel
     }
 
     /**
-     * @return
+     * <p>
+     * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for
+     * your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can
+     * use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply
+     * <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For
+     * more information about advanced event selectors, see <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     * >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
+     * 
+     * @return Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions
+     *         for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a
+     *         trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not
+     *         both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing
+     *         <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     *         href
+     *         ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     *         >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
      */
 
     public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
@@ -408,7 +461,25 @@ public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
     }
 
     /**
+     * <p>
+     * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for
+     * your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can
+     * use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply
+     * <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For
+     * more information about advanced event selectors, see <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     * >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions
+     *        for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a
+     *        trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not
+     *        both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing
+     *        <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     *        href
+     *        ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">
+     *        Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
      */
 
     public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector> advancedEventSelectors) {
@@ -421,6 +492,15 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
     }
 
     /**
+     * <p>
+     * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for
+     * your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can
+     * use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply
+     * <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For
+     * more information about advanced event selectors, see <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     * >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setAdvancedEventSelectors(java.util.Collection)} or
@@ -428,6 +508,14 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
      * </p>
      * 
      * @param advancedEventSelectors
+     *        Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions
+     *        for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a
+     *        trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not
+     *        both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing
+     *        <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     *        href
+     *        ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">
+     *        Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -442,7 +530,25 @@ public PutEventSelectorsRequest withAdvancedEventSelectors(AdvancedEventSelector
     }
 
     /**
+     * <p>
+     * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for
+     * your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can
+     * use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply
+     * <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For
+     * more information about advanced event selectors, see <a
+     * href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html"
+     * >Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions
+     *        for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a
+     *        trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not
+     *        both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing
+     *        <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a
+     *        href
+     *        ="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html">
+     *        Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsResult.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsResult.java
index 1a5f42983892..519b30403945 100644
--- a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsResult.java
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/PutEventSelectorsResult.java
@@ -38,7 +38,11 @@ public class PutEventSelectorsResult extends com.amazonaws.AmazonWebServiceResul
      * </p>
      */
     private com.amazonaws.internal.SdkInternalList<EventSelector> eventSelectors;
-
+    /**
+     * <p>
+     * Specifies the advanced event selectors configured for your trail.
+     * </p>
+     */
     private com.amazonaws.internal.SdkInternalList<AdvancedEventSelector> advancedEventSelectors;
 
     /**
@@ -170,7 +174,11 @@ public PutEventSelectorsResult withEventSelectors(java.util.Collection<EventSele
     }
 
     /**
-     * @return
+     * <p>
+     * Specifies the advanced event selectors configured for your trail.
+     * </p>
+     * 
+     * @return Specifies the advanced event selectors configured for your trail.
      */
 
     public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
@@ -181,7 +189,12 @@ public java.util.List<AdvancedEventSelector> getAdvancedEventSelectors() {
     }
 
     /**
+     * <p>
+     * Specifies the advanced event selectors configured for your trail.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        Specifies the advanced event selectors configured for your trail.
      */
 
     public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector> advancedEventSelectors) {
@@ -194,6 +207,9 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
     }
 
     /**
+     * <p>
+     * Specifies the advanced event selectors configured for your trail.
+     * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setAdvancedEventSelectors(java.util.Collection)} or
@@ -201,6 +217,7 @@ public void setAdvancedEventSelectors(java.util.Collection<AdvancedEventSelector
      * </p>
      * 
      * @param advancedEventSelectors
+     *        Specifies the advanced event selectors configured for your trail.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -215,7 +232,12 @@ public PutEventSelectorsResult withAdvancedEventSelectors(AdvancedEventSelector.
     }
 
     /**
+     * <p>
+     * Specifies the advanced event selectors configured for your trail.
+     * </p>
+     * 
      * @param advancedEventSelectors
+     *        Specifies the advanced event selectors configured for your trail.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/transform/CloudTrailInvalidClientTokenIdExceptionUnmarshaller.java b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/transform/CloudTrailInvalidClientTokenIdExceptionUnmarshaller.java
new file mode 100644
index 000000000000..4b6aa100832f
--- /dev/null
+++ b/aws-java-sdk-cloudtrail/src/main/java/com/amazonaws/services/cloudtrail/model/transform/CloudTrailInvalidClientTokenIdExceptionUnmarshaller.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.cloudtrail.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.cloudtrail.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * CloudTrailInvalidClientTokenIdException JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class CloudTrailInvalidClientTokenIdExceptionUnmarshaller extends EnhancedJsonErrorUnmarshaller {
+    private CloudTrailInvalidClientTokenIdExceptionUnmarshaller() {
+        super(com.amazonaws.services.cloudtrail.model.CloudTrailInvalidClientTokenIdException.class, "CloudTrailInvalidClientTokenIdException");
+    }
+
+    @Override
+    public com.amazonaws.services.cloudtrail.model.CloudTrailInvalidClientTokenIdException unmarshallFromContext(JsonUnmarshallerContext context)
+            throws Exception {
+        com.amazonaws.services.cloudtrail.model.CloudTrailInvalidClientTokenIdException cloudTrailInvalidClientTokenIdException = new com.amazonaws.services.cloudtrail.model.CloudTrailInvalidClientTokenIdException(
+                null);
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+        return cloudTrailInvalidClientTokenIdException;
+    }
+
+    private static CloudTrailInvalidClientTokenIdExceptionUnmarshaller instance;
+
+    public static CloudTrailInvalidClientTokenIdExceptionUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new CloudTrailInvalidClientTokenIdExceptionUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-cloudwatch/pom.xml b/aws-java-sdk-cloudwatch/pom.xml
index 61bf6db59b3d..d6eb42a1730e 100644
--- a/aws-java-sdk-cloudwatch/pom.xml
+++ b/aws-java-sdk-cloudwatch/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudwatch</artifactId>
diff --git a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatch.java b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatch.java
index 903ef3c8fdf8..424584cfdfba 100644
--- a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatch.java
+++ b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatch.java
@@ -233,7 +233,7 @@ public interface AmazonCloudWatch {
 
     /**
      * <p>
-     * Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm
+     * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm
      * state, or a prefix for any action.
      * </p>
      * 
@@ -824,6 +824,10 @@ public interface AmazonCloudWatch {
      * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous
      * configuration of the alarm.
      * </p>
+     * <p>
+     * If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that
+     * has Systems Manager OpsItem actions.
+     * </p>
      * 
      * @param putCompositeAlarmRequest
      * @return Result of the PutCompositeAlarm operation returned by the service.
@@ -918,49 +922,20 @@ public interface AmazonCloudWatch {
      * <ul>
      * <li>
      * <p>
-     * <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance
-     * status metrics
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:StopInstances</code> for alarms with stop actions
+     * The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>ec2:TerminateInstances</code> for alarms with terminate actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * No specific permissions are needed for alarms with recover actions
+     * The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.
      * </p>
      * </li>
      * </ul>
      * <p>
-     * If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm,
-     * but the stop or terminate actions are not performed. However, if you are later granted the required permissions,
-     * the alarm actions that you created earlier are performed.
-     * </p>
-     * <p>
-     * If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance
-     * using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS
-     * notifications or Auto Scaling policies.
-     * </p>
-     * <p>
-     * If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2
-     * instance using alarm actions.
-     * </p>
-     * <p>
      * The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API,
-     * CloudWatch creates the necessary service-linked role for you. The service-linked role is called
-     * <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=
+     * CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called
+     * <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For
+     * more information, see <a href=
      * "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role"
      * >AWS service-linked role</a>.
      * </p>
diff --git a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchAsync.java b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchAsync.java
index af8fe102edc9..6ce73774013b 100644
--- a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchAsync.java
+++ b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchAsync.java
@@ -277,7 +277,7 @@ java.util.concurrent.Future<DescribeAlarmHistoryResult> describeAlarmHistoryAsyn
 
     /**
      * <p>
-     * Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm
+     * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm
      * state, or a prefix for any action.
      * </p>
      * 
@@ -291,7 +291,7 @@ java.util.concurrent.Future<DescribeAlarmHistoryResult> describeAlarmHistoryAsyn
 
     /**
      * <p>
-     * Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm
+     * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm
      * state, or a prefix for any action.
      * </p>
      * 
@@ -1376,6 +1376,10 @@ java.util.concurrent.Future<PutAnomalyDetectorResult> putAnomalyDetectorAsync(Pu
      * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous
      * configuration of the alarm.
      * </p>
+     * <p>
+     * If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that
+     * has Systems Manager OpsItem actions.
+     * </p>
      * 
      * @param putCompositeAlarmRequest
      * @return A Java Future containing the result of the PutCompositeAlarm operation returned by the service.
@@ -1428,6 +1432,10 @@ java.util.concurrent.Future<PutAnomalyDetectorResult> putAnomalyDetectorAsync(Pu
      * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous
      * configuration of the alarm.
      * </p>
+     * <p>
+     * If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that
+     * has Systems Manager OpsItem actions.
+     * </p>
      * 
      * @param putCompositeAlarmRequest
      * @param asyncHandler
@@ -1575,49 +1583,20 @@ java.util.concurrent.Future<PutInsightRuleResult> putInsightRuleAsync(PutInsight
      * <ul>
      * <li>
      * <p>
-     * <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance
-     * status metrics
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:StopInstances</code> for alarms with stop actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:TerminateInstances</code> for alarms with terminate actions
+     * The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
      * </p>
      * </li>
      * <li>
      * <p>
-     * No specific permissions are needed for alarms with recover actions
+     * The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.
      * </p>
      * </li>
      * </ul>
      * <p>
-     * If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm,
-     * but the stop or terminate actions are not performed. However, if you are later granted the required permissions,
-     * the alarm actions that you created earlier are performed.
-     * </p>
-     * <p>
-     * If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance
-     * using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS
-     * notifications or Auto Scaling policies.
-     * </p>
-     * <p>
-     * If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2
-     * instance using alarm actions.
-     * </p>
-     * <p>
      * The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API,
-     * CloudWatch creates the necessary service-linked role for you. The service-linked role is called
-     * <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=
+     * CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called
+     * <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For
+     * more information, see <a href=
      * "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role"
      * >AWS service-linked role</a>.
      * </p>
@@ -1653,49 +1632,20 @@ java.util.concurrent.Future<PutInsightRuleResult> putInsightRuleAsync(PutInsight
      * <ul>
      * <li>
      * <p>
-     * <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance
-     * status metrics
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:StopInstances</code> for alarms with stop actions
+     * The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>ec2:TerminateInstances</code> for alarms with terminate actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * No specific permissions are needed for alarms with recover actions
+     * The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.
      * </p>
      * </li>
      * </ul>
      * <p>
-     * If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm,
-     * but the stop or terminate actions are not performed. However, if you are later granted the required permissions,
-     * the alarm actions that you created earlier are performed.
-     * </p>
-     * <p>
-     * If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance
-     * using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS
-     * notifications or Auto Scaling policies.
-     * </p>
-     * <p>
-     * If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2
-     * instance using alarm actions.
-     * </p>
-     * <p>
      * The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API,
-     * CloudWatch creates the necessary service-linked role for you. The service-linked role is called
-     * <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=
+     * CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called
+     * <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For
+     * more information, see <a href=
      * "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role"
      * >AWS service-linked role</a>.
      * </p>
diff --git a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchClient.java b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchClient.java
index d8a818b28405..6c06e235a201 100644
--- a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchClient.java
+++ b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/AmazonCloudWatchClient.java
@@ -632,7 +632,7 @@ public DescribeAlarmHistoryResult describeAlarmHistory() {
 
     /**
      * <p>
-     * Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm
+     * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm
      * state, or a prefix for any action.
      * </p>
      * 
@@ -1913,6 +1913,10 @@ final PutAnomalyDetectorResult executePutAnomalyDetector(PutAnomalyDetectorReque
      * When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous
      * configuration of the alarm.
      * </p>
+     * <p>
+     * If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that
+     * has Systems Manager OpsItem actions.
+     * </p>
      * 
      * @param putCompositeAlarmRequest
      * @return Result of the PutCompositeAlarm operation returned by the service.
@@ -2129,49 +2133,20 @@ final PutInsightRuleResult executePutInsightRule(PutInsightRuleRequest putInsigh
      * <ul>
      * <li>
      * <p>
-     * <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance
-     * status metrics
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * <code>ec2:StopInstances</code> for alarms with stop actions
+     * The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>ec2:TerminateInstances</code> for alarms with terminate actions
-     * </p>
-     * </li>
-     * <li>
-     * <p>
-     * No specific permissions are needed for alarms with recover actions
+     * The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.
      * </p>
      * </li>
      * </ul>
      * <p>
-     * If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm,
-     * but the stop or terminate actions are not performed. However, if you are later granted the required permissions,
-     * the alarm actions that you created earlier are performed.
-     * </p>
-     * <p>
-     * If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance
-     * using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS
-     * notifications or Auto Scaling policies.
-     * </p>
-     * <p>
-     * If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2
-     * instance using alarm actions.
-     * </p>
-     * <p>
      * The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API,
-     * CloudWatch creates the necessary service-linked role for you. The service-linked role is called
-     * <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=
+     * CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called
+     * <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For
+     * more information, see <a href=
      * "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role"
      * >AWS service-linked role</a>.
      * </p>
diff --git a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutCompositeAlarmRequest.java b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutCompositeAlarmRequest.java
index db8b2d94b11d..1eab81e43498 100644
--- a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutCompositeAlarmRequest.java
+++ b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutCompositeAlarmRequest.java
@@ -38,7 +38,8 @@ public class PutCompositeAlarmRequest extends com.amazonaws.AmazonWebServiceRequ
      * action is specified as an Amazon Resource Name (ARN).
      * </p>
      * <p>
-     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      */
     private com.amazonaws.internal.SdkInternalList<String> alarmActions;
@@ -232,13 +233,15 @@ public Boolean isActionsEnabled() {
      * action is specified as an Amazon Resource Name (ARN).
      * </p>
      * <p>
-     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * 
      * @return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state.
      *         Each action is specified as an Amazon Resource Name (ARN).</p>
      *         <p>
-     *         Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     *         Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     *         <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      */
 
     public java.util.List<String> getAlarmActions() {
@@ -254,14 +257,16 @@ public java.util.List<String> getAlarmActions() {
      * action is specified as an Amazon Resource Name (ARN).
      * </p>
      * <p>
-     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * 
      * @param alarmActions
      *        The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state.
      *        Each action is specified as an Amazon Resource Name (ARN).</p>
      *        <p>
-     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     *        <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      */
 
     public void setAlarmActions(java.util.Collection<String> alarmActions) {
@@ -279,7 +284,8 @@ public void setAlarmActions(java.util.Collection<String> alarmActions) {
      * action is specified as an Amazon Resource Name (ARN).
      * </p>
      * <p>
-     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
@@ -291,7 +297,8 @@ public void setAlarmActions(java.util.Collection<String> alarmActions) {
      *        The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state.
      *        Each action is specified as an Amazon Resource Name (ARN).</p>
      *        <p>
-     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     *        <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -311,14 +318,16 @@ public PutCompositeAlarmRequest withAlarmActions(String... alarmActions) {
      * action is specified as an Amazon Resource Name (ARN).
      * </p>
      * <p>
-     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     * Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * 
      * @param alarmActions
      *        The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state.
      *        Each action is specified as an Amazon Resource Name (ARN).</p>
      *        <p>
-     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>
+     *        Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
+     *        <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutMetricAlarmRequest.java b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutMetricAlarmRequest.java
index 0c5f50140384..0453a6398fa1 100644
--- a/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutMetricAlarmRequest.java
+++ b/aws-java-sdk-cloudwatch/src/main/java/com/amazonaws/services/cloudwatch/model/PutMetricAlarmRequest.java
@@ -75,6 +75,7 @@ public class PutMetricAlarmRequest extends com.amazonaws.AmazonWebServiceRequest
      * <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code>
      * | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      * <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     * | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * Valid Values (for use with IAM roles):
@@ -292,6 +293,13 @@ public class PutMetricAlarmRequest extends com.amazonaws.AmazonWebServiceRequest
      * Tags can help you organize and categorize your resources. You can also use them to scope user permissions by
      * granting a user permission to access or change only resources with certain tag values.
      * </p>
+     * <p>
+     * If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored.
+     * To change the tags of an existing alarm, use <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or
+     * <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.
+     * </p>
      */
     private com.amazonaws.internal.SdkInternalList<Tag> tags;
     /**
@@ -644,6 +652,7 @@ public PutMetricAlarmRequest withOKActions(java.util.Collection<String> oKAction
      * <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code>
      * | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      * <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     * | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * Valid Values (for use with IAM roles):
@@ -661,6 +670,7 @@ public PutMetricAlarmRequest withOKActions(java.util.Collection<String> oKAction
      *         <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> |
      *         <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      *         <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     *         | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      *         </p>
      *         <p>
      *         Valid Values (for use with IAM roles):
@@ -687,6 +697,7 @@ public java.util.List<String> getAlarmActions() {
      * <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code>
      * | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      * <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     * | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * Valid Values (for use with IAM roles):
@@ -705,6 +716,7 @@ public java.util.List<String> getAlarmActions() {
      *        <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> |
      *        <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      *        <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     *        | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      *        </p>
      *        <p>
      *        Valid Values (for use with IAM roles):
@@ -733,6 +745,7 @@ public void setAlarmActions(java.util.Collection<String> alarmActions) {
      * <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code>
      * | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      * <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     * | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * Valid Values (for use with IAM roles):
@@ -756,6 +769,7 @@ public void setAlarmActions(java.util.Collection<String> alarmActions) {
      *        <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> |
      *        <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      *        <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     *        | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      *        </p>
      *        <p>
      *        Valid Values (for use with IAM roles):
@@ -786,6 +800,7 @@ public PutMetricAlarmRequest withAlarmActions(String... alarmActions) {
      * <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code>
      * | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      * <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     * | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      * </p>
      * <p>
      * Valid Values (for use with IAM roles):
@@ -804,6 +819,7 @@ public PutMetricAlarmRequest withAlarmActions(String... alarmActions) {
      *        <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> |
      *        <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> |
      *        <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code>
+     *        | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>
      *        </p>
      *        <p>
      *        Valid Values (for use with IAM roles):
@@ -2416,12 +2432,27 @@ public PutMetricAlarmRequest withMetrics(java.util.Collection<MetricDataQuery> m
      * Tags can help you organize and categorize your resources. You can also use them to scope user permissions by
      * granting a user permission to access or change only resources with certain tag values.
      * </p>
+     * <p>
+     * If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored.
+     * To change the tags of an existing alarm, use <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or
+     * <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.
+     * </p>
      * 
      * @return A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an
      *         alarm.</p>
      *         <p>
      *         Tags can help you organize and categorize your resources. You can also use them to scope user permissions
      *         by granting a user permission to access or change only resources with certain tag values.
+     *         </p>
+     *         <p>
+     *         If you are using this operation to update an existing alarm, any tags you specify in this parameter are
+     *         ignored. To change the tags of an existing alarm, use <a
+     *         href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html"
+     *         >TagResource</a> or <a
+     *         href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html"
+     *         >UntagResource</a>.
      */
 
     public java.util.List<Tag> getTags() {
@@ -2439,6 +2470,13 @@ public java.util.List<Tag> getTags() {
      * Tags can help you organize and categorize your resources. You can also use them to scope user permissions by
      * granting a user permission to access or change only resources with certain tag values.
      * </p>
+     * <p>
+     * If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored.
+     * To change the tags of an existing alarm, use <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or
+     * <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.
+     * </p>
      * 
      * @param tags
      *        A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an
@@ -2446,6 +2484,14 @@ public java.util.List<Tag> getTags() {
      *        <p>
      *        Tags can help you organize and categorize your resources. You can also use them to scope user permissions
      *        by granting a user permission to access or change only resources with certain tag values.
+     *        </p>
+     *        <p>
+     *        If you are using this operation to update an existing alarm, any tags you specify in this parameter are
+     *        ignored. To change the tags of an existing alarm, use <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html"
+     *        >TagResource</a> or <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html"
+     *        >UntagResource</a>.
      */
 
     public void setTags(java.util.Collection<Tag> tags) {
@@ -2466,6 +2512,13 @@ public void setTags(java.util.Collection<Tag> tags) {
      * granting a user permission to access or change only resources with certain tag values.
      * </p>
      * <p>
+     * If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored.
+     * To change the tags of an existing alarm, use <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or
+     * <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.
+     * </p>
+     * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the
      * existing values.
@@ -2477,6 +2530,14 @@ public void setTags(java.util.Collection<Tag> tags) {
      *        <p>
      *        Tags can help you organize and categorize your resources. You can also use them to scope user permissions
      *        by granting a user permission to access or change only resources with certain tag values.
+     *        </p>
+     *        <p>
+     *        If you are using this operation to update an existing alarm, any tags you specify in this parameter are
+     *        ignored. To change the tags of an existing alarm, use <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html"
+     *        >TagResource</a> or <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html"
+     *        >UntagResource</a>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -2498,6 +2559,13 @@ public PutMetricAlarmRequest withTags(Tag... tags) {
      * Tags can help you organize and categorize your resources. You can also use them to scope user permissions by
      * granting a user permission to access or change only resources with certain tag values.
      * </p>
+     * <p>
+     * If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored.
+     * To change the tags of an existing alarm, use <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html">TagResource</a> or
+     * <a
+     * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html">UntagResource</a>.
+     * </p>
      * 
      * @param tags
      *        A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an
@@ -2505,6 +2573,14 @@ public PutMetricAlarmRequest withTags(Tag... tags) {
      *        <p>
      *        Tags can help you organize and categorize your resources. You can also use them to scope user permissions
      *        by granting a user permission to access or change only resources with certain tag values.
+     *        </p>
+     *        <p>
+     *        If you are using this operation to update an existing alarm, any tags you specify in this parameter are
+     *        ignored. To change the tags of an existing alarm, use <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html"
+     *        >TagResource</a> or <a
+     *        href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html"
+     *        >UntagResource</a>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-cloudwatchmetrics/pom.xml b/aws-java-sdk-cloudwatchmetrics/pom.xml
index 29c5891578ef..55b564c2d962 100644
--- a/aws-java-sdk-cloudwatchmetrics/pom.xml
+++ b/aws-java-sdk-cloudwatchmetrics/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cloudwatchmetrics</artifactId>
diff --git a/aws-java-sdk-code-generator/pom.xml b/aws-java-sdk-code-generator/pom.xml
index 804713fbe85a..dc4ef4f0f3e3 100644
--- a/aws-java-sdk-code-generator/pom.xml
+++ b/aws-java-sdk-code-generator/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-code-generator</artifactId>
diff --git a/aws-java-sdk-codeartifact/pom.xml b/aws-java-sdk-codeartifact/pom.xml
index 7f0df4c35463..72cf78c7bb94 100644
--- a/aws-java-sdk-codeartifact/pom.xml
+++ b/aws-java-sdk-codeartifact/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codeartifact</artifactId>
diff --git a/aws-java-sdk-codebuild/pom.xml b/aws-java-sdk-codebuild/pom.xml
index b9c78ca58b13..2bc0629f03fa 100644
--- a/aws-java-sdk-codebuild/pom.xml
+++ b/aws-java-sdk-codebuild/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codebuild</artifactId>
diff --git a/aws-java-sdk-codecommit/pom.xml b/aws-java-sdk-codecommit/pom.xml
index 7cc64ace2df5..71fc2e546ec4 100644
--- a/aws-java-sdk-codecommit/pom.xml
+++ b/aws-java-sdk-codecommit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codecommit</artifactId>
diff --git a/aws-java-sdk-codedeploy/pom.xml b/aws-java-sdk-codedeploy/pom.xml
index 8e43261164c5..99b677a78cab 100644
--- a/aws-java-sdk-codedeploy/pom.xml
+++ b/aws-java-sdk-codedeploy/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codedeploy</artifactId>
diff --git a/aws-java-sdk-codegen-maven-plugin/pom.xml b/aws-java-sdk-codegen-maven-plugin/pom.xml
index b084b2a57fdc..ad88bd6d0dac 100644
--- a/aws-java-sdk-codegen-maven-plugin/pom.xml
+++ b/aws-java-sdk-codegen-maven-plugin/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codegen-maven-plugin</artifactId>
diff --git a/aws-java-sdk-codeguruprofiler/pom.xml b/aws-java-sdk-codeguruprofiler/pom.xml
index ccbeb878e10f..2c463ec184ff 100644
--- a/aws-java-sdk-codeguruprofiler/pom.xml
+++ b/aws-java-sdk-codeguruprofiler/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codeguruprofiler</artifactId>
diff --git a/aws-java-sdk-codegurureviewer/pom.xml b/aws-java-sdk-codegurureviewer/pom.xml
index 1a99aba018da..3fb7a4250cba 100644
--- a/aws-java-sdk-codegurureviewer/pom.xml
+++ b/aws-java-sdk-codegurureviewer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codegurureviewer</artifactId>
diff --git a/aws-java-sdk-codepipeline/pom.xml b/aws-java-sdk-codepipeline/pom.xml
index 0e283c22a9f8..02b203a83689 100644
--- a/aws-java-sdk-codepipeline/pom.xml
+++ b/aws-java-sdk-codepipeline/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codepipeline</artifactId>
diff --git a/aws-java-sdk-codestar/pom.xml b/aws-java-sdk-codestar/pom.xml
index a88e1b77dc66..98509b6d7e94 100644
--- a/aws-java-sdk-codestar/pom.xml
+++ b/aws-java-sdk-codestar/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codestar</artifactId>
diff --git a/aws-java-sdk-codestarconnections/pom.xml b/aws-java-sdk-codestarconnections/pom.xml
index c61ff9ace861..152f7ff65f1f 100644
--- a/aws-java-sdk-codestarconnections/pom.xml
+++ b/aws-java-sdk-codestarconnections/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codestarconnections</artifactId>
diff --git a/aws-java-sdk-codestarnotifications/pom.xml b/aws-java-sdk-codestarnotifications/pom.xml
index 1d50d80aaf1a..e412db74e409 100644
--- a/aws-java-sdk-codestarnotifications/pom.xml
+++ b/aws-java-sdk-codestarnotifications/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-codestarnotifications</artifactId>
diff --git a/aws-java-sdk-cognitoidentity/pom.xml b/aws-java-sdk-cognitoidentity/pom.xml
index 5dc8ccb4c3e7..28de875d1281 100644
--- a/aws-java-sdk-cognitoidentity/pom.xml
+++ b/aws-java-sdk-cognitoidentity/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cognitoidentity</artifactId>
diff --git a/aws-java-sdk-cognitoidp/pom.xml b/aws-java-sdk-cognitoidp/pom.xml
index df14c3c732bc..eda83f6089ff 100644
--- a/aws-java-sdk-cognitoidp/pom.xml
+++ b/aws-java-sdk-cognitoidp/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cognitoidp</artifactId>
diff --git a/aws-java-sdk-cognitosync/pom.xml b/aws-java-sdk-cognitosync/pom.xml
index 4ca0beb84455..1c1f6b3fe2c4 100644
--- a/aws-java-sdk-cognitosync/pom.xml
+++ b/aws-java-sdk-cognitosync/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-cognitosync</artifactId>
diff --git a/aws-java-sdk-comprehend/pom.xml b/aws-java-sdk-comprehend/pom.xml
index 8d773a263174..7d2e562a799f 100644
--- a/aws-java-sdk-comprehend/pom.xml
+++ b/aws-java-sdk-comprehend/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-comprehend</artifactId>
diff --git a/aws-java-sdk-comprehendmedical/pom.xml b/aws-java-sdk-comprehendmedical/pom.xml
index 0f09987074a9..63a988283561 100644
--- a/aws-java-sdk-comprehendmedical/pom.xml
+++ b/aws-java-sdk-comprehendmedical/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-comprehendmedical</artifactId>
diff --git a/aws-java-sdk-computeoptimizer/pom.xml b/aws-java-sdk-computeoptimizer/pom.xml
index 5ff6afa26118..d49361e3f676 100644
--- a/aws-java-sdk-computeoptimizer/pom.xml
+++ b/aws-java-sdk-computeoptimizer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-computeoptimizer</artifactId>
diff --git a/aws-java-sdk-config/pom.xml b/aws-java-sdk-config/pom.xml
index a8c150b0006b..a668e690828b 100644
--- a/aws-java-sdk-config/pom.xml
+++ b/aws-java-sdk-config/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-config</artifactId>
diff --git a/aws-java-sdk-connect/pom.xml b/aws-java-sdk-connect/pom.xml
index 58550302897c..32aa1499878b 100644
--- a/aws-java-sdk-connect/pom.xml
+++ b/aws-java-sdk-connect/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-connect</artifactId>
diff --git a/aws-java-sdk-connectcontactlens/pom.xml b/aws-java-sdk-connectcontactlens/pom.xml
index 51c4110e4fb0..3e4468a37ce7 100644
--- a/aws-java-sdk-connectcontactlens/pom.xml
+++ b/aws-java-sdk-connectcontactlens/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-connectcontactlens</artifactId>
diff --git a/aws-java-sdk-connectparticipant/pom.xml b/aws-java-sdk-connectparticipant/pom.xml
index dc0c2af61854..8ecd332cb5cd 100644
--- a/aws-java-sdk-connectparticipant/pom.xml
+++ b/aws-java-sdk-connectparticipant/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-connectparticipant</artifactId>
diff --git a/aws-java-sdk-core/pom.xml b/aws-java-sdk-core/pom.xml
index dffb76297fff..76958ce28787 100644
--- a/aws-java-sdk-core/pom.xml
+++ b/aws-java-sdk-core/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-core</artifactId>
diff --git a/aws-java-sdk-core/src/main/resources/com/amazonaws/sdk/versionInfo.properties b/aws-java-sdk-core/src/main/resources/com/amazonaws/sdk/versionInfo.properties
index e6ee46dbd9a1..07c24da08e43 100644
--- a/aws-java-sdk-core/src/main/resources/com/amazonaws/sdk/versionInfo.properties
+++ b/aws-java-sdk-core/src/main/resources/com/amazonaws/sdk/versionInfo.properties
@@ -1,4 +1,4 @@
-#Thu Dec 10 20:10:23 UTC 2020
+#Fri Dec 11 22:48:20 UTC 2020
 platform=java
-version=1.11.917
-internalVersion=6034093955
+version=1.11.918
+internalVersion=6034209157
diff --git a/aws-java-sdk-costandusagereport/pom.xml b/aws-java-sdk-costandusagereport/pom.xml
index 46d969bb7ebb..d3e6b1267fc4 100644
--- a/aws-java-sdk-costandusagereport/pom.xml
+++ b/aws-java-sdk-costandusagereport/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-costandusagereport</artifactId>
diff --git a/aws-java-sdk-costexplorer/pom.xml b/aws-java-sdk-costexplorer/pom.xml
index c80b3e96227c..ab5f4a836939 100644
--- a/aws-java-sdk-costexplorer/pom.xml
+++ b/aws-java-sdk-costexplorer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-costexplorer</artifactId>
diff --git a/aws-java-sdk-customerprofiles/pom.xml b/aws-java-sdk-customerprofiles/pom.xml
index 42de27a368df..2206b0444f7f 100644
--- a/aws-java-sdk-customerprofiles/pom.xml
+++ b/aws-java-sdk-customerprofiles/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-customerprofiles</artifactId>
diff --git a/aws-java-sdk-dataexchange/pom.xml b/aws-java-sdk-dataexchange/pom.xml
index 760f3deaa6ca..151e95d5d7e5 100644
--- a/aws-java-sdk-dataexchange/pom.xml
+++ b/aws-java-sdk-dataexchange/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-dataexchange</artifactId>
diff --git a/aws-java-sdk-datapipeline/pom.xml b/aws-java-sdk-datapipeline/pom.xml
index e1ce337e1223..27305c7c6f2e 100644
--- a/aws-java-sdk-datapipeline/pom.xml
+++ b/aws-java-sdk-datapipeline/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-datapipeline</artifactId>
diff --git a/aws-java-sdk-datasync/pom.xml b/aws-java-sdk-datasync/pom.xml
index 10a239882207..bf096451d586 100644
--- a/aws-java-sdk-datasync/pom.xml
+++ b/aws-java-sdk-datasync/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-datasync</artifactId>
diff --git a/aws-java-sdk-dax/pom.xml b/aws-java-sdk-dax/pom.xml
index e555fa5826f8..65008534ac68 100644
--- a/aws-java-sdk-dax/pom.xml
+++ b/aws-java-sdk-dax/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-dax</artifactId>
diff --git a/aws-java-sdk-detective/pom.xml b/aws-java-sdk-detective/pom.xml
index 6a1a44a9db88..e10f5a8c24d5 100644
--- a/aws-java-sdk-detective/pom.xml
+++ b/aws-java-sdk-detective/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-detective</artifactId>
diff --git a/aws-java-sdk-devicefarm/pom.xml b/aws-java-sdk-devicefarm/pom.xml
index 82dda8162408..0ee5ea4ff025 100644
--- a/aws-java-sdk-devicefarm/pom.xml
+++ b/aws-java-sdk-devicefarm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-devicefarm</artifactId>
diff --git a/aws-java-sdk-devopsguru/pom.xml b/aws-java-sdk-devopsguru/pom.xml
index 29039456f7a3..1a3e61b7b08c 100644
--- a/aws-java-sdk-devopsguru/pom.xml
+++ b/aws-java-sdk-devopsguru/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-devopsguru</artifactId>
diff --git a/aws-java-sdk-directconnect/pom.xml b/aws-java-sdk-directconnect/pom.xml
index a06674db19ca..3337b43c3e87 100644
--- a/aws-java-sdk-directconnect/pom.xml
+++ b/aws-java-sdk-directconnect/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-directconnect</artifactId>
diff --git a/aws-java-sdk-directory/pom.xml b/aws-java-sdk-directory/pom.xml
index dcc3dc376697..f1ab13036884 100644
--- a/aws-java-sdk-directory/pom.xml
+++ b/aws-java-sdk-directory/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-directory</artifactId>
diff --git a/aws-java-sdk-discovery/pom.xml b/aws-java-sdk-discovery/pom.xml
index 9fca0285c2f5..a8923b531b9c 100644
--- a/aws-java-sdk-discovery/pom.xml
+++ b/aws-java-sdk-discovery/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-discovery</artifactId>
diff --git a/aws-java-sdk-dlm/pom.xml b/aws-java-sdk-dlm/pom.xml
index 80d3e88dec92..4f207066d14a 100644
--- a/aws-java-sdk-dlm/pom.xml
+++ b/aws-java-sdk-dlm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-dlm</artifactId>
diff --git a/aws-java-sdk-dms/pom.xml b/aws-java-sdk-dms/pom.xml
index df1b1dcc0d6a..251c97215c97 100644
--- a/aws-java-sdk-dms/pom.xml
+++ b/aws-java-sdk-dms/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-dms</artifactId>
diff --git a/aws-java-sdk-docdb/pom.xml b/aws-java-sdk-docdb/pom.xml
index d35c8b0be138..84e922f98677 100644
--- a/aws-java-sdk-docdb/pom.xml
+++ b/aws-java-sdk-docdb/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-docdb</artifactId>
diff --git a/aws-java-sdk-dynamodb/pom.xml b/aws-java-sdk-dynamodb/pom.xml
index 38ffad5ed2e2..5ea579af20db 100644
--- a/aws-java-sdk-dynamodb/pom.xml
+++ b/aws-java-sdk-dynamodb/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-dynamodb</artifactId>
diff --git a/aws-java-sdk-ebs/pom.xml b/aws-java-sdk-ebs/pom.xml
index 59f84d4cd1e3..d1d7ae47d72e 100644
--- a/aws-java-sdk-ebs/pom.xml
+++ b/aws-java-sdk-ebs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ebs</artifactId>
diff --git a/aws-java-sdk-ec2/pom.xml b/aws-java-sdk-ec2/pom.xml
index 973ddc871ef8..f0224cb1bdb4 100644
--- a/aws-java-sdk-ec2/pom.xml
+++ b/aws-java-sdk-ec2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ec2</artifactId>
diff --git a/aws-java-sdk-ec2instanceconnect/pom.xml b/aws-java-sdk-ec2instanceconnect/pom.xml
index 2b011eb260c4..868eeba3ca14 100644
--- a/aws-java-sdk-ec2instanceconnect/pom.xml
+++ b/aws-java-sdk-ec2instanceconnect/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ec2instanceconnect</artifactId>
diff --git a/aws-java-sdk-ecr/pom.xml b/aws-java-sdk-ecr/pom.xml
index 0f7eb4837430..d701284dd429 100644
--- a/aws-java-sdk-ecr/pom.xml
+++ b/aws-java-sdk-ecr/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ecr</artifactId>
diff --git a/aws-java-sdk-ecrpublic/pom.xml b/aws-java-sdk-ecrpublic/pom.xml
index 69147eec4901..b9a4294a109d 100644
--- a/aws-java-sdk-ecrpublic/pom.xml
+++ b/aws-java-sdk-ecrpublic/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ecrpublic</artifactId>
diff --git a/aws-java-sdk-ecs/pom.xml b/aws-java-sdk-ecs/pom.xml
index 91baa96aae29..b1ad7598cf52 100644
--- a/aws-java-sdk-ecs/pom.xml
+++ b/aws-java-sdk-ecs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ecs</artifactId>
diff --git a/aws-java-sdk-efs/pom.xml b/aws-java-sdk-efs/pom.xml
index 5f4fbd456562..2fc211779360 100644
--- a/aws-java-sdk-efs/pom.xml
+++ b/aws-java-sdk-efs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-efs</artifactId>
diff --git a/aws-java-sdk-eks/pom.xml b/aws-java-sdk-eks/pom.xml
index 98ca8e221a6d..33428d178fda 100644
--- a/aws-java-sdk-eks/pom.xml
+++ b/aws-java-sdk-eks/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-eks</artifactId>
diff --git a/aws-java-sdk-elasticache/pom.xml b/aws-java-sdk-elasticache/pom.xml
index 7eb1c7ec713d..34fec7c19392 100644
--- a/aws-java-sdk-elasticache/pom.xml
+++ b/aws-java-sdk-elasticache/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticache</artifactId>
diff --git a/aws-java-sdk-elasticbeanstalk/pom.xml b/aws-java-sdk-elasticbeanstalk/pom.xml
index 5e29e3ac68e5..4917f653a2fe 100644
--- a/aws-java-sdk-elasticbeanstalk/pom.xml
+++ b/aws-java-sdk-elasticbeanstalk/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticbeanstalk</artifactId>
diff --git a/aws-java-sdk-elasticinference/pom.xml b/aws-java-sdk-elasticinference/pom.xml
index 75b538659348..1e201c17b2d6 100644
--- a/aws-java-sdk-elasticinference/pom.xml
+++ b/aws-java-sdk-elasticinference/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticinference</artifactId>
diff --git a/aws-java-sdk-elasticloadbalancing/pom.xml b/aws-java-sdk-elasticloadbalancing/pom.xml
index 2cfa455cb208..270f0373b582 100644
--- a/aws-java-sdk-elasticloadbalancing/pom.xml
+++ b/aws-java-sdk-elasticloadbalancing/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticloadbalancing</artifactId>
diff --git a/aws-java-sdk-elasticloadbalancingv2/pom.xml b/aws-java-sdk-elasticloadbalancingv2/pom.xml
index bb4d82dee1fe..6cab6f82d3cc 100644
--- a/aws-java-sdk-elasticloadbalancingv2/pom.xml
+++ b/aws-java-sdk-elasticloadbalancingv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticloadbalancingv2</artifactId>
diff --git a/aws-java-sdk-elasticsearch/pom.xml b/aws-java-sdk-elasticsearch/pom.xml
index d96264596abd..1f7b41cd58fb 100644
--- a/aws-java-sdk-elasticsearch/pom.xml
+++ b/aws-java-sdk-elasticsearch/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elasticsearch</artifactId>
diff --git a/aws-java-sdk-elastictranscoder/pom.xml b/aws-java-sdk-elastictranscoder/pom.xml
index 1534a1eb92bd..cb15dfebaab8 100644
--- a/aws-java-sdk-elastictranscoder/pom.xml
+++ b/aws-java-sdk-elastictranscoder/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-elastictranscoder</artifactId>
diff --git a/aws-java-sdk-emr/pom.xml b/aws-java-sdk-emr/pom.xml
index fd1fe9f126c8..ad7ea85fa311 100644
--- a/aws-java-sdk-emr/pom.xml
+++ b/aws-java-sdk-emr/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-emr</artifactId>
diff --git a/aws-java-sdk-emrcontainers/pom.xml b/aws-java-sdk-emrcontainers/pom.xml
index 2cf056c12ea0..8b82f0836277 100644
--- a/aws-java-sdk-emrcontainers/pom.xml
+++ b/aws-java-sdk-emrcontainers/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-emrcontainers</artifactId>
diff --git a/aws-java-sdk-eventbridge/pom.xml b/aws-java-sdk-eventbridge/pom.xml
index c3ce399f52ad..209ec6bcebf3 100644
--- a/aws-java-sdk-eventbridge/pom.xml
+++ b/aws-java-sdk-eventbridge/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-eventbridge</artifactId>
diff --git a/aws-java-sdk-events/pom.xml b/aws-java-sdk-events/pom.xml
index 13c2703c31b7..09012513a261 100644
--- a/aws-java-sdk-events/pom.xml
+++ b/aws-java-sdk-events/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-events</artifactId>
diff --git a/aws-java-sdk-fms/pom.xml b/aws-java-sdk-fms/pom.xml
index 05d46ccc4626..7eb58088c58b 100644
--- a/aws-java-sdk-fms/pom.xml
+++ b/aws-java-sdk-fms/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-fms</artifactId>
diff --git a/aws-java-sdk-forecast/pom.xml b/aws-java-sdk-forecast/pom.xml
index b0182095861d..58f04e4f6202 100644
--- a/aws-java-sdk-forecast/pom.xml
+++ b/aws-java-sdk-forecast/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-forecast</artifactId>
diff --git a/aws-java-sdk-forecastquery/pom.xml b/aws-java-sdk-forecastquery/pom.xml
index 2f5b9a4733cd..a43c1b57585b 100644
--- a/aws-java-sdk-forecastquery/pom.xml
+++ b/aws-java-sdk-forecastquery/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-forecastquery</artifactId>
diff --git a/aws-java-sdk-frauddetector/pom.xml b/aws-java-sdk-frauddetector/pom.xml
index e0919da09759..2f178f55ee06 100644
--- a/aws-java-sdk-frauddetector/pom.xml
+++ b/aws-java-sdk-frauddetector/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-frauddetector</artifactId>
diff --git a/aws-java-sdk-fsx/pom.xml b/aws-java-sdk-fsx/pom.xml
index 57abefd9ed5b..19aa9481d377 100644
--- a/aws-java-sdk-fsx/pom.xml
+++ b/aws-java-sdk-fsx/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-fsx</artifactId>
diff --git a/aws-java-sdk-gamelift/pom.xml b/aws-java-sdk-gamelift/pom.xml
index f0ae4e880959..1c9d85e1f086 100644
--- a/aws-java-sdk-gamelift/pom.xml
+++ b/aws-java-sdk-gamelift/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-gamelift</artifactId>
diff --git a/aws-java-sdk-glacier/pom.xml b/aws-java-sdk-glacier/pom.xml
index 5f5d82f03bec..05c9171fe811 100644
--- a/aws-java-sdk-glacier/pom.xml
+++ b/aws-java-sdk-glacier/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-glacier</artifactId>
diff --git a/aws-java-sdk-globalaccelerator/pom.xml b/aws-java-sdk-globalaccelerator/pom.xml
index 0b7386e8703c..0885aa8af98e 100644
--- a/aws-java-sdk-globalaccelerator/pom.xml
+++ b/aws-java-sdk-globalaccelerator/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-globalaccelerator</artifactId>
diff --git a/aws-java-sdk-glue/pom.xml b/aws-java-sdk-glue/pom.xml
index 81e602c7b1da..cf4fb9c3385d 100644
--- a/aws-java-sdk-glue/pom.xml
+++ b/aws-java-sdk-glue/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-glue</artifactId>
diff --git a/aws-java-sdk-gluedatabrew/pom.xml b/aws-java-sdk-gluedatabrew/pom.xml
index a561ad247840..05381907077c 100644
--- a/aws-java-sdk-gluedatabrew/pom.xml
+++ b/aws-java-sdk-gluedatabrew/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-gluedatabrew</artifactId>
diff --git a/aws-java-sdk-greengrass/pom.xml b/aws-java-sdk-greengrass/pom.xml
index 4c5cbd049c32..a287bb3ccfa8 100644
--- a/aws-java-sdk-greengrass/pom.xml
+++ b/aws-java-sdk-greengrass/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-greengrass</artifactId>
diff --git a/aws-java-sdk-groundstation/pom.xml b/aws-java-sdk-groundstation/pom.xml
index 5f572e758045..902c304e6d0d 100644
--- a/aws-java-sdk-groundstation/pom.xml
+++ b/aws-java-sdk-groundstation/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-groundstation</artifactId>
diff --git a/aws-java-sdk-guardduty/pom.xml b/aws-java-sdk-guardduty/pom.xml
index 14b9f3a1a9fd..8f5877181cf8 100644
--- a/aws-java-sdk-guardduty/pom.xml
+++ b/aws-java-sdk-guardduty/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-guardduty</artifactId>
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDuty.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDuty.java
index 80da7332348c..b85a8c820ebe 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDuty.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDuty.java
@@ -58,7 +58,7 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Accepts the invitation to be monitored by a master GuardDuty account.
+     * Accepts the invitation to be monitored by a GuardDuty administrator account.
      * </p>
      * 
      * @param acceptInvitationRequest
@@ -79,8 +79,8 @@ public interface AmazonGuardDuty {
      * </p>
      * <note>
      * <p>
-     * Only the master account can archive findings. Member accounts don't have permission to archive findings from
-     * their accounts.
+     * Only the administrator account can archive findings. Member accounts don't have permission to archive findings
+     * from their accounts.
      * </p>
      * </note>
      * 
@@ -136,8 +136,8 @@ public interface AmazonGuardDuty {
      * <p>
      * Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP
      * addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't
-     * generate findings for IP addresses that are included in IPSets. Only users from the master account can use this
-     * operation.
+     * generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use
+     * this operation.
      * </p>
      * 
      * @param createIPSetRequest
@@ -159,8 +159,8 @@ public interface AmazonGuardDuty {
      * </p>
      * <p>
      * When using <code>Create Members</code> as an organizations delegated administrator this action will enable
-     * GuardDuty in the added member accounts, with the exception of the organization master account, which must enable
-     * GuardDuty prior to being added as a member.
+     * GuardDuty in the added member accounts, with the exception of the organization delegated administrator account,
+     * which must enable GuardDuty prior to being added as a member.
      * </p>
      * <p>
      * If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member
@@ -220,7 +220,7 @@ public interface AmazonGuardDuty {
     /**
      * <p>
      * Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates
-     * findings based on ThreatIntelSets. Only users of the master account can use this operation.
+     * findings based on ThreatIntelSets. Only users of the administrator account can use this operation.
      * </p>
      * 
      * @param createThreatIntelSetRequest
@@ -323,7 +323,7 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.
      * </p>
      * 
      * @param deleteMembersRequest
@@ -425,7 +425,7 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Disassociates the current GuardDuty member account from its master account.
+     * Disassociates the current GuardDuty member account from its administrator account.
      * </p>
      * 
      * @param disassociateFromMasterAccountRequest
@@ -442,7 +442,8 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param disassociateMembersRequest
@@ -579,7 +580,8 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Provides the details for the GuardDuty master account associated with the current GuardDuty member account.
+     * Provides the details for the GuardDuty administrator account associated with the current GuardDuty member
+     * account.
      * </p>
      * 
      * @param getMasterAccountRequest
@@ -613,7 +615,8 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param getMembersRequest
@@ -670,8 +673,8 @@ public interface AmazonGuardDuty {
     /**
      * <p>
      * Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty,
-     * and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the
-     * master account.
+     * and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param inviteMembersRequest
@@ -740,7 +743,7 @@ public interface AmazonGuardDuty {
     /**
      * <p>
      * Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member
-     * account, the IPSets returned are the IPSets from the associated master account.
+     * account, the IPSets returned are the IPSets from the associated administrator account.
      * </p>
      * 
      * @param listIPSetsRequest
@@ -774,7 +777,7 @@ public interface AmazonGuardDuty {
 
     /**
      * <p>
-     * Lists details about all member accounts for the current GuardDuty master account.
+     * Lists details about all member accounts for the current GuardDuty administrator account.
      * </p>
      * 
      * @param listMembersRequest
@@ -845,7 +848,7 @@ public interface AmazonGuardDuty {
     /**
      * <p>
      * Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a
-     * member account, the ThreatIntelSets associated with the master account are returned.
+     * member account, the ThreatIntelSets associated with the administrator account are returned.
      * </p>
      * 
      * @param listThreatIntelSetsRequest
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyAsync.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyAsync.java
index 79a5c38dc69c..3796fa402d2a 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyAsync.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyAsync.java
@@ -49,7 +49,7 @@ public interface AmazonGuardDutyAsync extends AmazonGuardDuty {
 
     /**
      * <p>
-     * Accepts the invitation to be monitored by a master GuardDuty account.
+     * Accepts the invitation to be monitored by a GuardDuty administrator account.
      * </p>
      * 
      * @param acceptInvitationRequest
@@ -62,7 +62,7 @@ public interface AmazonGuardDutyAsync extends AmazonGuardDuty {
 
     /**
      * <p>
-     * Accepts the invitation to be monitored by a master GuardDuty account.
+     * Accepts the invitation to be monitored by a GuardDuty administrator account.
      * </p>
      * 
      * @param acceptInvitationRequest
@@ -84,8 +84,8 @@ java.util.concurrent.Future<AcceptInvitationResult> acceptInvitationAsync(Accept
      * </p>
      * <note>
      * <p>
-     * Only the master account can archive findings. Member accounts don't have permission to archive findings from
-     * their accounts.
+     * Only the administrator account can archive findings. Member accounts don't have permission to archive findings
+     * from their accounts.
      * </p>
      * </note>
      * 
@@ -103,8 +103,8 @@ java.util.concurrent.Future<AcceptInvitationResult> acceptInvitationAsync(Accept
      * </p>
      * <note>
      * <p>
-     * Only the master account can archive findings. Member accounts don't have permission to archive findings from
-     * their accounts.
+     * Only the administrator account can archive findings. Member accounts don't have permission to archive findings
+     * from their accounts.
      * </p>
      * </note>
      * 
@@ -191,8 +191,8 @@ java.util.concurrent.Future<CreateFilterResult> createFilterAsync(CreateFilterRe
      * <p>
      * Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP
      * addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't
-     * generate findings for IP addresses that are included in IPSets. Only users from the master account can use this
-     * operation.
+     * generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use
+     * this operation.
      * </p>
      * 
      * @param createIPSetRequest
@@ -207,8 +207,8 @@ java.util.concurrent.Future<CreateFilterResult> createFilterAsync(CreateFilterRe
      * <p>
      * Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP
      * addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't
-     * generate findings for IP addresses that are included in IPSets. Only users from the master account can use this
-     * operation.
+     * generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use
+     * this operation.
      * </p>
      * 
      * @param createIPSetRequest
@@ -231,8 +231,8 @@ java.util.concurrent.Future<CreateIPSetResult> createIPSetAsync(CreateIPSetReque
      * </p>
      * <p>
      * When using <code>Create Members</code> as an organizations delegated administrator this action will enable
-     * GuardDuty in the added member accounts, with the exception of the organization master account, which must enable
-     * GuardDuty prior to being added as a member.
+     * GuardDuty in the added member accounts, with the exception of the organization delegated administrator account,
+     * which must enable GuardDuty prior to being added as a member.
      * </p>
      * <p>
      * If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member
@@ -256,8 +256,8 @@ java.util.concurrent.Future<CreateIPSetResult> createIPSetAsync(CreateIPSetReque
      * </p>
      * <p>
      * When using <code>Create Members</code> as an organizations delegated administrator this action will enable
-     * GuardDuty in the added member accounts, with the exception of the organization master account, which must enable
-     * GuardDuty prior to being added as a member.
+     * GuardDuty in the added member accounts, with the exception of the organization delegated administrator account,
+     * which must enable GuardDuty prior to being added as a member.
      * </p>
      * <p>
      * If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member
@@ -350,7 +350,7 @@ java.util.concurrent.Future<CreateSampleFindingsResult> createSampleFindingsAsyn
     /**
      * <p>
      * Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates
-     * findings based on ThreatIntelSets. Only users of the master account can use this operation.
+     * findings based on ThreatIntelSets. Only users of the administrator account can use this operation.
      * </p>
      * 
      * @param createThreatIntelSetRequest
@@ -364,7 +364,7 @@ java.util.concurrent.Future<CreateSampleFindingsResult> createSampleFindingsAsyn
     /**
      * <p>
      * Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates
-     * findings based on ThreatIntelSets. Only users of the master account can use this operation.
+     * findings based on ThreatIntelSets. Only users of the administrator account can use this operation.
      * </p>
      * 
      * @param createThreatIntelSetRequest
@@ -539,7 +539,7 @@ java.util.concurrent.Future<DeleteInvitationsResult> deleteInvitationsAsync(Dele
 
     /**
      * <p>
-     * Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.
      * </p>
      * 
      * @param deleteMembersRequest
@@ -552,7 +552,7 @@ java.util.concurrent.Future<DeleteInvitationsResult> deleteInvitationsAsync(Dele
 
     /**
      * <p>
-     * Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.
      * </p>
      * 
      * @param deleteMembersRequest
@@ -739,7 +739,7 @@ java.util.concurrent.Future<DisableOrganizationAdminAccountResult> disableOrgani
 
     /**
      * <p>
-     * Disassociates the current GuardDuty member account from its master account.
+     * Disassociates the current GuardDuty member account from its administrator account.
      * </p>
      * 
      * @param disassociateFromMasterAccountRequest
@@ -754,7 +754,7 @@ java.util.concurrent.Future<DisassociateFromMasterAccountResult> disassociateFro
 
     /**
      * <p>
-     * Disassociates the current GuardDuty member account from its master account.
+     * Disassociates the current GuardDuty member account from its administrator account.
      * </p>
      * 
      * @param disassociateFromMasterAccountRequest
@@ -774,7 +774,8 @@ java.util.concurrent.Future<DisassociateFromMasterAccountResult> disassociateFro
 
     /**
      * <p>
-     * Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param disassociateMembersRequest
@@ -787,7 +788,8 @@ java.util.concurrent.Future<DisassociateFromMasterAccountResult> disassociateFro
 
     /**
      * <p>
-     * Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param disassociateMembersRequest
@@ -1028,7 +1030,8 @@ java.util.concurrent.Future<GetInvitationsCountResult> getInvitationsCountAsync(
 
     /**
      * <p>
-     * Provides the details for the GuardDuty master account associated with the current GuardDuty member account.
+     * Provides the details for the GuardDuty administrator account associated with the current GuardDuty member
+     * account.
      * </p>
      * 
      * @param getMasterAccountRequest
@@ -1041,7 +1044,8 @@ java.util.concurrent.Future<GetInvitationsCountResult> getInvitationsCountAsync(
 
     /**
      * <p>
-     * Provides the details for the GuardDuty master account associated with the current GuardDuty member account.
+     * Provides the details for the GuardDuty administrator account associated with the current GuardDuty member
+     * account.
      * </p>
      * 
      * @param getMasterAccountRequest
@@ -1090,7 +1094,8 @@ java.util.concurrent.Future<GetMemberDetectorsResult> getMemberDetectorsAsync(Ge
 
     /**
      * <p>
-     * Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param getMembersRequest
@@ -1103,7 +1108,8 @@ java.util.concurrent.Future<GetMemberDetectorsResult> getMemberDetectorsAsync(Ge
 
     /**
      * <p>
-     * Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param getMembersRequest
@@ -1194,8 +1200,8 @@ java.util.concurrent.Future<GetUsageStatisticsResult> getUsageStatisticsAsync(Ge
     /**
      * <p>
      * Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty,
-     * and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the
-     * master account.
+     * and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param inviteMembersRequest
@@ -1209,8 +1215,8 @@ java.util.concurrent.Future<GetUsageStatisticsResult> getUsageStatisticsAsync(Ge
     /**
      * <p>
      * Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty,
-     * and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the
-     * master account.
+     * and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param inviteMembersRequest
@@ -1322,7 +1328,7 @@ java.util.concurrent.Future<ListFindingsResult> listFindingsAsync(ListFindingsRe
     /**
      * <p>
      * Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member
-     * account, the IPSets returned are the IPSets from the associated master account.
+     * account, the IPSets returned are the IPSets from the associated administrator account.
      * </p>
      * 
      * @param listIPSetsRequest
@@ -1336,7 +1342,7 @@ java.util.concurrent.Future<ListFindingsResult> listFindingsAsync(ListFindingsRe
     /**
      * <p>
      * Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member
-     * account, the IPSets returned are the IPSets from the associated master account.
+     * account, the IPSets returned are the IPSets from the associated administrator account.
      * </p>
      * 
      * @param listIPSetsRequest
@@ -1385,7 +1391,7 @@ java.util.concurrent.Future<ListInvitationsResult> listInvitationsAsync(ListInvi
 
     /**
      * <p>
-     * Lists details about all member accounts for the current GuardDuty master account.
+     * Lists details about all member accounts for the current GuardDuty administrator account.
      * </p>
      * 
      * @param listMembersRequest
@@ -1398,7 +1404,7 @@ java.util.concurrent.Future<ListInvitationsResult> listInvitationsAsync(ListInvi
 
     /**
      * <p>
-     * Lists details about all member accounts for the current GuardDuty master account.
+     * Lists details about all member accounts for the current GuardDuty administrator account.
      * </p>
      * 
      * @param listMembersRequest
@@ -1520,7 +1526,7 @@ java.util.concurrent.Future<ListTagsForResourceResult> listTagsForResourceAsync(
     /**
      * <p>
      * Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a
-     * member account, the ThreatIntelSets associated with the master account are returned.
+     * member account, the ThreatIntelSets associated with the administrator account are returned.
      * </p>
      * 
      * @param listThreatIntelSetsRequest
@@ -1534,7 +1540,7 @@ java.util.concurrent.Future<ListTagsForResourceResult> listTagsForResourceAsync(
     /**
      * <p>
      * Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a
-     * member account, the ThreatIntelSets associated with the master account are returned.
+     * member account, the ThreatIntelSets associated with the administrator account are returned.
      * </p>
      * 
      * @param listThreatIntelSetsRequest
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyClient.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyClient.java
index 7c2bdf4366c5..ef3bfd85f4b1 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyClient.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/AmazonGuardDutyClient.java
@@ -148,7 +148,7 @@ private void init() {
 
     /**
      * <p>
-     * Accepts the invitation to be monitored by a master GuardDuty account.
+     * Accepts the invitation to be monitored by a GuardDuty administrator account.
      * </p>
      * 
      * @param acceptInvitationRequest
@@ -210,8 +210,8 @@ final AcceptInvitationResult executeAcceptInvitation(AcceptInvitationRequest acc
      * </p>
      * <note>
      * <p>
-     * Only the master account can archive findings. Member accounts don't have permission to archive findings from
-     * their accounts.
+     * Only the administrator account can archive findings. Member accounts don't have permission to archive findings
+     * from their accounts.
      * </p>
      * </note>
      * 
@@ -390,8 +390,8 @@ final CreateFilterResult executeCreateFilter(CreateFilterRequest createFilterReq
      * <p>
      * Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP
      * addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't
-     * generate findings for IP addresses that are included in IPSets. Only users from the master account can use this
-     * operation.
+     * generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use
+     * this operation.
      * </p>
      * 
      * @param createIPSetRequest
@@ -454,8 +454,8 @@ final CreateIPSetResult executeCreateIPSet(CreateIPSetRequest createIPSetRequest
      * </p>
      * <p>
      * When using <code>Create Members</code> as an organizations delegated administrator this action will enable
-     * GuardDuty in the added member accounts, with the exception of the organization master account, which must enable
-     * GuardDuty prior to being added as a member.
+     * GuardDuty in the added member accounts, with the exception of the organization delegated administrator account,
+     * which must enable GuardDuty prior to being added as a member.
      * </p>
      * <p>
      * If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member
@@ -640,7 +640,7 @@ final CreateSampleFindingsResult executeCreateSampleFindings(CreateSampleFinding
     /**
      * <p>
      * Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates
-     * findings based on ThreatIntelSets. Only users of the master account can use this operation.
+     * findings based on ThreatIntelSets. Only users of the administrator account can use this operation.
      * </p>
      * 
      * @param createThreatIntelSetRequest
@@ -989,7 +989,7 @@ final DeleteInvitationsResult executeDeleteInvitations(DeleteInvitationsRequest
 
     /**
      * <p>
-     * Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.
      * </p>
      * 
      * @param deleteMembersRequest
@@ -1347,7 +1347,7 @@ final DisableOrganizationAdminAccountResult executeDisableOrganizationAdminAccou
 
     /**
      * <p>
-     * Disassociates the current GuardDuty member account from its master account.
+     * Disassociates the current GuardDuty member account from its administrator account.
      * </p>
      * 
      * @param disassociateFromMasterAccountRequest
@@ -1407,7 +1407,8 @@ final DisassociateFromMasterAccountResult executeDisassociateFromMasterAccount(D
 
     /**
      * <p>
-     * Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param disassociateMembersRequest
@@ -1875,7 +1876,8 @@ final GetInvitationsCountResult executeGetInvitationsCount(GetInvitationsCountRe
 
     /**
      * <p>
-     * Provides the details for the GuardDuty master account associated with the current GuardDuty member account.
+     * Provides the details for the GuardDuty administrator account associated with the current GuardDuty member
+     * account.
      * </p>
      * 
      * @param getMasterAccountRequest
@@ -1991,7 +1993,8 @@ final GetMemberDetectorsResult executeGetMemberDetectors(GetMemberDetectorsReque
 
     /**
      * <p>
-     * Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.
+     * Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account
+     * IDs.
      * </p>
      * 
      * @param getMembersRequest
@@ -2171,8 +2174,8 @@ final GetUsageStatisticsResult executeGetUsageStatistics(GetUsageStatisticsReque
     /**
      * <p>
      * Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty,
-     * and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the
-     * master account.
+     * and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param inviteMembersRequest
@@ -2405,7 +2408,7 @@ final ListFindingsResult executeListFindings(ListFindingsRequest listFindingsReq
     /**
      * <p>
      * Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member
-     * account, the IPSets returned are the IPSets from the associated master account.
+     * account, the IPSets returned are the IPSets from the associated administrator account.
      * </p>
      * 
      * @param listIPSetsRequest
@@ -2521,7 +2524,7 @@ final ListInvitationsResult executeListInvitations(ListInvitationsRequest listIn
 
     /**
      * <p>
-     * Lists details about all member accounts for the current GuardDuty master account.
+     * Lists details about all member accounts for the current GuardDuty administrator account.
      * </p>
      * 
      * @param listMembersRequest
@@ -2760,7 +2763,7 @@ final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRe
     /**
      * <p>
      * Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a
-     * member account, the ThreatIntelSets associated with the master account are returned.
+     * member account, the ThreatIntelSets associated with the administrator account are returned.
      * </p>
      * 
      * @param listThreatIntelSetsRequest
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/AcceptInvitationRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/AcceptInvitationRequest.java
index c05814b2066f..2a33fc478671 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/AcceptInvitationRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/AcceptInvitationRequest.java
@@ -33,13 +33,13 @@ public class AcceptInvitationRequest extends com.amazonaws.AmazonWebServiceReque
     private String detectorId;
     /**
      * <p>
-     * The account ID of the master GuardDuty account whose invitation you're accepting.
+     * The account ID of the GuardDuty administrator account whose invitation you're accepting.
      * </p>
      */
     private String masterId;
     /**
      * <p>
-     * The value that is used to validate the master account to the member account.
+     * The value that is used to validate the administrator account to the member account.
      * </p>
      */
     private String invitationId;
@@ -86,11 +86,11 @@ public AcceptInvitationRequest withDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The account ID of the master GuardDuty account whose invitation you're accepting.
+     * The account ID of the GuardDuty administrator account whose invitation you're accepting.
      * </p>
      * 
      * @param masterId
-     *        The account ID of the master GuardDuty account whose invitation you're accepting.
+     *        The account ID of the GuardDuty administrator account whose invitation you're accepting.
      */
 
     public void setMasterId(String masterId) {
@@ -99,10 +99,10 @@ public void setMasterId(String masterId) {
 
     /**
      * <p>
-     * The account ID of the master GuardDuty account whose invitation you're accepting.
+     * The account ID of the GuardDuty administrator account whose invitation you're accepting.
      * </p>
      * 
-     * @return The account ID of the master GuardDuty account whose invitation you're accepting.
+     * @return The account ID of the GuardDuty administrator account whose invitation you're accepting.
      */
 
     public String getMasterId() {
@@ -111,11 +111,11 @@ public String getMasterId() {
 
     /**
      * <p>
-     * The account ID of the master GuardDuty account whose invitation you're accepting.
+     * The account ID of the GuardDuty administrator account whose invitation you're accepting.
      * </p>
      * 
      * @param masterId
-     *        The account ID of the master GuardDuty account whose invitation you're accepting.
+     *        The account ID of the GuardDuty administrator account whose invitation you're accepting.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -126,11 +126,11 @@ public AcceptInvitationRequest withMasterId(String masterId) {
 
     /**
      * <p>
-     * The value that is used to validate the master account to the member account.
+     * The value that is used to validate the administrator account to the member account.
      * </p>
      * 
      * @param invitationId
-     *        The value that is used to validate the master account to the member account.
+     *        The value that is used to validate the administrator account to the member account.
      */
 
     public void setInvitationId(String invitationId) {
@@ -139,10 +139,10 @@ public void setInvitationId(String invitationId) {
 
     /**
      * <p>
-     * The value that is used to validate the master account to the member account.
+     * The value that is used to validate the administrator account to the member account.
      * </p>
      * 
-     * @return The value that is used to validate the master account to the member account.
+     * @return The value that is used to validate the administrator account to the member account.
      */
 
     public String getInvitationId() {
@@ -151,11 +151,11 @@ public String getInvitationId() {
 
     /**
      * <p>
-     * The value that is used to validate the master account to the member account.
+     * The value that is used to validate the administrator account to the member account.
      * </p>
      * 
      * @param invitationId
-     *        The value that is used to validate the master account to the member account.
+     *        The value that is used to validate the administrator account to the member account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateDetectorRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateDetectorRequest.java
index 4a8d75b721a2..aefb15b857b4 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateDetectorRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateDetectorRequest.java
@@ -39,13 +39,13 @@ public class CreateDetectorRequest extends com.amazonaws.AmazonWebServiceRequest
     private String clientToken;
     /**
      * <p>
-     * An enum value that specifies how frequently updated findings are exported.
+     * A value that specifies how frequently updated findings are exported.
      * </p>
      */
     private String findingPublishingFrequency;
     /**
      * <p>
-     * An object that describes which data sources will be enabled for the detector.
+     * Describes which data sources will be enabled for the detector.
      * </p>
      */
     private DataSourceConfigurations dataSources;
@@ -150,11 +150,11 @@ public CreateDetectorRequest withClientToken(String clientToken) {
 
     /**
      * <p>
-     * An enum value that specifies how frequently updated findings are exported.
+     * A value that specifies how frequently updated findings are exported.
      * </p>
      * 
      * @param findingPublishingFrequency
-     *        An enum value that specifies how frequently updated findings are exported.
+     *        A value that specifies how frequently updated findings are exported.
      * @see FindingPublishingFrequency
      */
 
@@ -164,10 +164,10 @@ public void setFindingPublishingFrequency(String findingPublishingFrequency) {
 
     /**
      * <p>
-     * An enum value that specifies how frequently updated findings are exported.
+     * A value that specifies how frequently updated findings are exported.
      * </p>
      * 
-     * @return An enum value that specifies how frequently updated findings are exported.
+     * @return A value that specifies how frequently updated findings are exported.
      * @see FindingPublishingFrequency
      */
 
@@ -177,11 +177,11 @@ public String getFindingPublishingFrequency() {
 
     /**
      * <p>
-     * An enum value that specifies how frequently updated findings are exported.
+     * A value that specifies how frequently updated findings are exported.
      * </p>
      * 
      * @param findingPublishingFrequency
-     *        An enum value that specifies how frequently updated findings are exported.
+     *        A value that specifies how frequently updated findings are exported.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see FindingPublishingFrequency
      */
@@ -193,11 +193,11 @@ public CreateDetectorRequest withFindingPublishingFrequency(String findingPublis
 
     /**
      * <p>
-     * An enum value that specifies how frequently updated findings are exported.
+     * A value that specifies how frequently updated findings are exported.
      * </p>
      * 
      * @param findingPublishingFrequency
-     *        An enum value that specifies how frequently updated findings are exported.
+     *        A value that specifies how frequently updated findings are exported.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see FindingPublishingFrequency
      */
@@ -209,11 +209,11 @@ public CreateDetectorRequest withFindingPublishingFrequency(FindingPublishingFre
 
     /**
      * <p>
-     * An object that describes which data sources will be enabled for the detector.
+     * Describes which data sources will be enabled for the detector.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources will be enabled for the detector.
+     *        Describes which data sources will be enabled for the detector.
      */
 
     public void setDataSources(DataSourceConfigurations dataSources) {
@@ -222,10 +222,10 @@ public void setDataSources(DataSourceConfigurations dataSources) {
 
     /**
      * <p>
-     * An object that describes which data sources will be enabled for the detector.
+     * Describes which data sources will be enabled for the detector.
      * </p>
      * 
-     * @return An object that describes which data sources will be enabled for the detector.
+     * @return Describes which data sources will be enabled for the detector.
      */
 
     public DataSourceConfigurations getDataSources() {
@@ -234,11 +234,11 @@ public DataSourceConfigurations getDataSources() {
 
     /**
      * <p>
-     * An object that describes which data sources will be enabled for the detector.
+     * Describes which data sources will be enabled for the detector.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources will be enabled for the detector.
+     *        Describes which data sources will be enabled for the detector.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateFilterRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateFilterRequest.java
index d1f4fddbb306..14f86d2ec852 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateFilterRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateFilterRequest.java
@@ -27,13 +27,14 @@ public class CreateFilterRequest extends com.amazonaws.AmazonWebServiceRequest i
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     * The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      * </p>
      */
     private String detectorId;
     /**
      * <p>
-     * The name of the filter.
+     * The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     * characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      * </p>
      */
     private String name;
@@ -196,6 +197,11 @@ public class CreateFilterRequest extends com.amazonaws.AmazonWebServiceRequest i
      * </li>
      * <li>
      * <p>
+     * service.action.awsApiCallAction.errorCode
+     * </p>
+     * </li>
+     * <li>
+     * <p>
      * service.action.awsApiCallAction.remoteIpDetails.city.cityName
      * </p>
      * </li>
@@ -340,11 +346,11 @@ public class CreateFilterRequest extends com.amazonaws.AmazonWebServiceRequest i
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     * The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     *        The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      */
 
     public void setDetectorId(String detectorId) {
@@ -353,10 +359,10 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     * The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      * </p>
      * 
-     * @return The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     * @return The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      */
 
     public String getDetectorId() {
@@ -365,11 +371,11 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     * The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector of the GuardDuty account that you want to create a filter for.
+     *        The ID of the detector belonging to the GuardDuty account that you want to create a filter for.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -380,11 +386,13 @@ public CreateFilterRequest withDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The name of the filter.
+     * The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     * characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      * </p>
      * 
      * @param name
-     *        The name of the filter.
+     *        The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     *        characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      */
 
     public void setName(String name) {
@@ -393,10 +401,12 @@ public void setName(String name) {
 
     /**
      * <p>
-     * The name of the filter.
+     * The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     * characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      * </p>
      * 
-     * @return The name of the filter.
+     * @return The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     *         characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      */
 
     public String getName() {
@@ -405,11 +415,13 @@ public String getName() {
 
     /**
      * <p>
-     * The name of the filter.
+     * The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     * characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      * </p>
      * 
      * @param name
-     *        The name of the filter.
+     *        The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric
+     *        characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -703,6 +715,11 @@ public CreateFilterRequest withRank(Integer rank) {
      * </li>
      * <li>
      * <p>
+     * service.action.awsApiCallAction.errorCode
+     * </p>
+     * </li>
+     * <li>
+     * <p>
      * service.action.awsApiCallAction.remoteIpDetails.city.cityName
      * </p>
      * </li>
@@ -969,6 +986,11 @@ public CreateFilterRequest withRank(Integer rank) {
      *        </li>
      *        <li>
      *        <p>
+     *        service.action.awsApiCallAction.errorCode
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
      *        service.action.awsApiCallAction.remoteIpDetails.city.cityName
      *        </p>
      *        </li>
@@ -1241,6 +1263,11 @@ public void setFindingCriteria(FindingCriteria findingCriteria) {
      * </li>
      * <li>
      * <p>
+     * service.action.awsApiCallAction.errorCode
+     * </p>
+     * </li>
+     * <li>
+     * <p>
      * service.action.awsApiCallAction.remoteIpDetails.city.cityName
      * </p>
      * </li>
@@ -1506,6 +1533,11 @@ public void setFindingCriteria(FindingCriteria findingCriteria) {
      *         </li>
      *         <li>
      *         <p>
+     *         service.action.awsApiCallAction.errorCode
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
      *         service.action.awsApiCallAction.remoteIpDetails.city.cityName
      *         </p>
      *         </li>
@@ -1778,6 +1810,11 @@ public FindingCriteria getFindingCriteria() {
      * </li>
      * <li>
      * <p>
+     * service.action.awsApiCallAction.errorCode
+     * </p>
+     * </li>
+     * <li>
+     * <p>
      * service.action.awsApiCallAction.remoteIpDetails.city.cityName
      * </p>
      * </li>
@@ -2044,6 +2081,11 @@ public FindingCriteria getFindingCriteria() {
      *        </li>
      *        <li>
      *        <p>
+     *        service.action.awsApiCallAction.errorCode
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
      *        service.action.awsApiCallAction.remoteIpDetails.city.cityName
      *        </p>
      *        </li>
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateMembersRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateMembersRequest.java
index d562558ac14f..8164f8e9f873 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateMembersRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/CreateMembersRequest.java
@@ -33,8 +33,8 @@ public class CreateMembersRequest extends com.amazonaws.AmazonWebServiceRequest
     private String detectorId;
     /**
      * <p>
-     * A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty
-     * account.
+     * A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     * administrator account.
      * </p>
      */
     private java.util.List<AccountDetail> accountDetails;
@@ -81,12 +81,12 @@ public CreateMembersRequest withDetectorId(String detectorId) {
 
     /**
      * <p>
-     * A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty
-     * account.
+     * A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     * administrator account.
      * </p>
      * 
-     * @return A list of account ID and email address pairs of the accounts that you want to associate with the master
-     *         GuardDuty account.
+     * @return A list of account ID and email address pairs of the accounts that you want to associate with the
+     *         GuardDuty administrator account.
      */
 
     public java.util.List<AccountDetail> getAccountDetails() {
@@ -95,13 +95,13 @@ public java.util.List<AccountDetail> getAccountDetails() {
 
     /**
      * <p>
-     * A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty
-     * account.
+     * A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param accountDetails
-     *        A list of account ID and email address pairs of the accounts that you want to associate with the master
-     *        GuardDuty account.
+     *        A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     *        administrator account.
      */
 
     public void setAccountDetails(java.util.Collection<AccountDetail> accountDetails) {
@@ -115,8 +115,8 @@ public void setAccountDetails(java.util.Collection<AccountDetail> accountDetails
 
     /**
      * <p>
-     * A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty
-     * account.
+     * A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     * administrator account.
      * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
@@ -125,8 +125,8 @@ public void setAccountDetails(java.util.Collection<AccountDetail> accountDetails
      * </p>
      * 
      * @param accountDetails
-     *        A list of account ID and email address pairs of the accounts that you want to associate with the master
-     *        GuardDuty account.
+     *        A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     *        administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -142,13 +142,13 @@ public CreateMembersRequest withAccountDetails(AccountDetail... accountDetails)
 
     /**
      * <p>
-     * A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty
-     * account.
+     * A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     * administrator account.
      * </p>
      * 
      * @param accountDetails
-     *        A list of account ID and email address pairs of the accounts that you want to associate with the master
-     *        GuardDuty account.
+     *        A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty
+     *        administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DescribeOrganizationConfigurationResult.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DescribeOrganizationConfigurationResult.java
index 4c011c946fa0..ee47963ffb95 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DescribeOrganizationConfigurationResult.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DescribeOrganizationConfigurationResult.java
@@ -33,13 +33,13 @@ public class DescribeOrganizationConfigurationResult extends com.amazonaws.Amazo
     /**
      * <p>
      * Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     * administrator master account.
+     * administrator account for your organization.
      * </p>
      */
     private Boolean memberAccountLimitReached;
     /**
      * <p>
-     * An object that describes which data sources are enabled automatically for member accounts.
+     * Describes which data sources are enabled automatically for member accounts.
      * </p>
      */
     private OrganizationDataSourceConfigurationsResult dataSources;
@@ -99,12 +99,12 @@ public Boolean isAutoEnable() {
     /**
      * <p>
      * Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     * administrator master account.
+     * administrator account for your organization.
      * </p>
      * 
      * @param memberAccountLimitReached
      *        Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     *        administrator master account.
+     *        administrator account for your organization.
      */
 
     public void setMemberAccountLimitReached(Boolean memberAccountLimitReached) {
@@ -114,11 +114,11 @@ public void setMemberAccountLimitReached(Boolean memberAccountLimitReached) {
     /**
      * <p>
      * Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     * administrator master account.
+     * administrator account for your organization.
      * </p>
      * 
      * @return Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     *         administrator master account.
+     *         administrator account for your organization.
      */
 
     public Boolean getMemberAccountLimitReached() {
@@ -128,12 +128,12 @@ public Boolean getMemberAccountLimitReached() {
     /**
      * <p>
      * Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     * administrator master account.
+     * administrator account for your organization.
      * </p>
      * 
      * @param memberAccountLimitReached
      *        Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     *        administrator master account.
+     *        administrator account for your organization.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -145,11 +145,11 @@ public DescribeOrganizationConfigurationResult withMemberAccountLimitReached(Boo
     /**
      * <p>
      * Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     * administrator master account.
+     * administrator account for your organization.
      * </p>
      * 
      * @return Indicates whether the maximum number of allowed member accounts are already associated with the delegated
-     *         administrator master account.
+     *         administrator account for your organization.
      */
 
     public Boolean isMemberAccountLimitReached() {
@@ -158,11 +158,11 @@ public Boolean isMemberAccountLimitReached() {
 
     /**
      * <p>
-     * An object that describes which data sources are enabled automatically for member accounts.
+     * Describes which data sources are enabled automatically for member accounts.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources are enabled automatically for member accounts.
+     *        Describes which data sources are enabled automatically for member accounts.
      */
 
     public void setDataSources(OrganizationDataSourceConfigurationsResult dataSources) {
@@ -171,10 +171,10 @@ public void setDataSources(OrganizationDataSourceConfigurationsResult dataSource
 
     /**
      * <p>
-     * An object that describes which data sources are enabled automatically for member accounts.
+     * Describes which data sources are enabled automatically for member accounts.
      * </p>
      * 
-     * @return An object that describes which data sources are enabled automatically for member accounts.
+     * @return Describes which data sources are enabled automatically for member accounts.
      */
 
     public OrganizationDataSourceConfigurationsResult getDataSources() {
@@ -183,11 +183,11 @@ public OrganizationDataSourceConfigurationsResult getDataSources() {
 
     /**
      * <p>
-     * An object that describes which data sources are enabled automatically for member accounts.
+     * Describes which data sources are enabled automatically for member accounts.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources are enabled automatically for member accounts.
+     *        Describes which data sources are enabled automatically for member accounts.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DisassociateMembersRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DisassociateMembersRequest.java
index bfc9b0a157f4..b65937102829 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DisassociateMembersRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/DisassociateMembersRequest.java
@@ -27,27 +27,28 @@ public class DisassociateMembersRequest extends com.amazonaws.AmazonWebServiceRe
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master
-     * account.
+     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
+     * administrator account.
      * </p>
      */
     private String detectorId;
     /**
      * <p>
-     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.
+     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator
+     * account.
      * </p>
      */
     private java.util.List<String> accountIds;
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master
-     * account.
+     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
+     * administrator account.
      * </p>
      * 
      * @param detectorId
      *        The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
-     *        master account.
+     *        administrator account.
      */
 
     public void setDetectorId(String detectorId) {
@@ -56,12 +57,12 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master
-     * account.
+     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
+     * administrator account.
      * </p>
      * 
      * @return The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
-     *         master account.
+     *         administrator account.
      */
 
     public String getDetectorId() {
@@ -70,13 +71,13 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master
-     * account.
+     * The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
+     * administrator account.
      * </p>
      * 
      * @param detectorId
      *        The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the
-     *        master account.
+     *        administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -87,11 +88,12 @@ public DisassociateMembersRequest withDetectorId(String detectorId) {
 
     /**
      * <p>
-     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.
+     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator
+     * account.
      * </p>
      * 
-     * @return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master
-     *         account.
+     * @return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the
+     *         administrator account.
      */
 
     public java.util.List<String> getAccountIds() {
@@ -100,12 +102,13 @@ public java.util.List<String> getAccountIds() {
 
     /**
      * <p>
-     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.
+     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator
+     * account.
      * </p>
      * 
      * @param accountIds
-     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master
-     *        account.
+     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the
+     *        administrator account.
      */
 
     public void setAccountIds(java.util.Collection<String> accountIds) {
@@ -119,7 +122,8 @@ public void setAccountIds(java.util.Collection<String> accountIds) {
 
     /**
      * <p>
-     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.
+     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator
+     * account.
      * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
@@ -128,8 +132,8 @@ public void setAccountIds(java.util.Collection<String> accountIds) {
      * </p>
      * 
      * @param accountIds
-     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master
-     *        account.
+     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the
+     *        administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -145,12 +149,13 @@ public DisassociateMembersRequest withAccountIds(String... accountIds) {
 
     /**
      * <p>
-     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.
+     * A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator
+     * account.
      * </p>
      * 
      * @param accountIds
-     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master
-     *        account.
+     *        A list of account IDs of the GuardDuty member accounts that you want to disassociate from the
+     *        administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetDetectorResult.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetDetectorResult.java
index a1dec692ed44..1d491eaa15cb 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetDetectorResult.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetDetectorResult.java
@@ -55,7 +55,7 @@ public class GetDetectorResult extends com.amazonaws.AmazonWebServiceResult<com.
     private String updatedAt;
     /**
      * <p>
-     * An object that describes which data sources are enabled for the detector.
+     * Describes which data sources are enabled for the detector.
      * </p>
      */
     private DataSourceConfigurationsResult dataSources;
@@ -306,11 +306,11 @@ public GetDetectorResult withUpdatedAt(String updatedAt) {
 
     /**
      * <p>
-     * An object that describes which data sources are enabled for the detector.
+     * Describes which data sources are enabled for the detector.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources are enabled for the detector.
+     *        Describes which data sources are enabled for the detector.
      */
 
     public void setDataSources(DataSourceConfigurationsResult dataSources) {
@@ -319,10 +319,10 @@ public void setDataSources(DataSourceConfigurationsResult dataSources) {
 
     /**
      * <p>
-     * An object that describes which data sources are enabled for the detector.
+     * Describes which data sources are enabled for the detector.
      * </p>
      * 
-     * @return An object that describes which data sources are enabled for the detector.
+     * @return Describes which data sources are enabled for the detector.
      */
 
     public DataSourceConfigurationsResult getDataSources() {
@@ -331,11 +331,11 @@ public DataSourceConfigurationsResult getDataSources() {
 
     /**
      * <p>
-     * An object that describes which data sources are enabled for the detector.
+     * Describes which data sources are enabled for the detector.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources are enabled for the detector.
+     *        Describes which data sources are enabled for the detector.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMasterAccountResult.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMasterAccountResult.java
index 7f31f7b3a48f..52d109f668df 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMasterAccountResult.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMasterAccountResult.java
@@ -25,18 +25,18 @@ public class GetMasterAccountResult extends com.amazonaws.AmazonWebServiceResult
 
     /**
      * <p>
-     * The master account details.
+     * The administrator account details.
      * </p>
      */
     private Master master;
 
     /**
      * <p>
-     * The master account details.
+     * The administrator account details.
      * </p>
      * 
      * @param master
-     *        The master account details.
+     *        The administrator account details.
      */
 
     public void setMaster(Master master) {
@@ -45,10 +45,10 @@ public void setMaster(Master master) {
 
     /**
      * <p>
-     * The master account details.
+     * The administrator account details.
      * </p>
      * 
-     * @return The master account details.
+     * @return The administrator account details.
      */
 
     public Master getMaster() {
@@ -57,11 +57,11 @@ public Master getMaster() {
 
     /**
      * <p>
-     * The master account details.
+     * The administrator account details.
      * </p>
      * 
      * @param master
-     *        The master account details.
+     *        The administrator account details.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMemberDetectorsRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMemberDetectorsRequest.java
index d5712c198316..99f18fdfe39f 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMemberDetectorsRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/GetMemberDetectorsRequest.java
@@ -27,7 +27,7 @@ public class GetMemberDetectorsRequest extends com.amazonaws.AmazonWebServiceReq
 
     /**
      * <p>
-     * The detector ID for the master account.
+     * The detector ID for the administrator account.
      * </p>
      */
     private String detectorId;
@@ -40,11 +40,11 @@ public class GetMemberDetectorsRequest extends com.amazonaws.AmazonWebServiceReq
 
     /**
      * <p>
-     * The detector ID for the master account.
+     * The detector ID for the administrator account.
      * </p>
      * 
      * @param detectorId
-     *        The detector ID for the master account.
+     *        The detector ID for the administrator account.
      */
 
     public void setDetectorId(String detectorId) {
@@ -53,10 +53,10 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The detector ID for the master account.
+     * The detector ID for the administrator account.
      * </p>
      * 
-     * @return The detector ID for the master account.
+     * @return The detector ID for the administrator account.
      */
 
     public String getDetectorId() {
@@ -65,11 +65,11 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The detector ID for the master account.
+     * The detector ID for the administrator account.
      * </p>
      * 
      * @param detectorId
-     *        The detector ID for the master account.
+     *        The detector ID for the administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/ListOrganizationAdminAccountsResult.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/ListOrganizationAdminAccountsResult.java
index eedf25b2a71f..dfa1f65c80d1 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/ListOrganizationAdminAccountsResult.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/ListOrganizationAdminAccountsResult.java
@@ -26,7 +26,7 @@ public class ListOrganizationAdminAccountsResult extends com.amazonaws.AmazonWeb
 
     /**
      * <p>
-     * An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     * A list of accounts configured as GuardDuty delegated administrators.
      * </p>
      */
     private java.util.List<AdminAccount> adminAccounts;
@@ -39,11 +39,10 @@ public class ListOrganizationAdminAccountsResult extends com.amazonaws.AmazonWeb
 
     /**
      * <p>
-     * An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     * A list of accounts configured as GuardDuty delegated administrators.
      * </p>
      * 
-     * @return An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated
-     *         administrators.
+     * @return A list of accounts configured as GuardDuty delegated administrators.
      */
 
     public java.util.List<AdminAccount> getAdminAccounts() {
@@ -52,11 +51,11 @@ public java.util.List<AdminAccount> getAdminAccounts() {
 
     /**
      * <p>
-     * An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     * A list of accounts configured as GuardDuty delegated administrators.
      * </p>
      * 
      * @param adminAccounts
-     *        An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     *        A list of accounts configured as GuardDuty delegated administrators.
      */
 
     public void setAdminAccounts(java.util.Collection<AdminAccount> adminAccounts) {
@@ -70,7 +69,7 @@ public void setAdminAccounts(java.util.Collection<AdminAccount> adminAccounts) {
 
     /**
      * <p>
-     * An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     * A list of accounts configured as GuardDuty delegated administrators.
      * </p>
      * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
@@ -79,7 +78,7 @@ public void setAdminAccounts(java.util.Collection<AdminAccount> adminAccounts) {
      * </p>
      * 
      * @param adminAccounts
-     *        An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     *        A list of accounts configured as GuardDuty delegated administrators.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -95,11 +94,11 @@ public ListOrganizationAdminAccountsResult withAdminAccounts(AdminAccount... adm
 
     /**
      * <p>
-     * An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     * A list of accounts configured as GuardDuty delegated administrators.
      * </p>
      * 
      * @param adminAccounts
-     *        An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.
+     *        A list of accounts configured as GuardDuty delegated administrators.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Master.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Master.java
index 8aa3d9bd8437..584aa2b81d35 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Master.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Master.java
@@ -19,7 +19,7 @@
 
 /**
  * <p>
- * Contains information about the master account and invitation.
+ * Contains information about the administrator account and invitation.
  * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Master" target="_top">AWS API
@@ -30,19 +30,19 @@ public class Master implements Serializable, Cloneable, StructuredPojo {
 
     /**
      * <p>
-     * The ID of the account used as the master account.
+     * The ID of the account used as the administrator account.
      * </p>
      */
     private String accountId;
     /**
      * <p>
-     * The value used to validate the master account to the member account.
+     * The value used to validate the administrator account to the member account.
      * </p>
      */
     private String invitationId;
     /**
      * <p>
-     * The status of the relationship between the master and member accounts.
+     * The status of the relationship between the administrator and member accounts.
      * </p>
      */
     private String relationshipStatus;
@@ -55,11 +55,11 @@ public class Master implements Serializable, Cloneable, StructuredPojo {
 
     /**
      * <p>
-     * The ID of the account used as the master account.
+     * The ID of the account used as the administrator account.
      * </p>
      * 
      * @param accountId
-     *        The ID of the account used as the master account.
+     *        The ID of the account used as the administrator account.
      */
 
     public void setAccountId(String accountId) {
@@ -68,10 +68,10 @@ public void setAccountId(String accountId) {
 
     /**
      * <p>
-     * The ID of the account used as the master account.
+     * The ID of the account used as the administrator account.
      * </p>
      * 
-     * @return The ID of the account used as the master account.
+     * @return The ID of the account used as the administrator account.
      */
 
     public String getAccountId() {
@@ -80,11 +80,11 @@ public String getAccountId() {
 
     /**
      * <p>
-     * The ID of the account used as the master account.
+     * The ID of the account used as the administrator account.
      * </p>
      * 
      * @param accountId
-     *        The ID of the account used as the master account.
+     *        The ID of the account used as the administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -95,11 +95,11 @@ public Master withAccountId(String accountId) {
 
     /**
      * <p>
-     * The value used to validate the master account to the member account.
+     * The value used to validate the administrator account to the member account.
      * </p>
      * 
      * @param invitationId
-     *        The value used to validate the master account to the member account.
+     *        The value used to validate the administrator account to the member account.
      */
 
     public void setInvitationId(String invitationId) {
@@ -108,10 +108,10 @@ public void setInvitationId(String invitationId) {
 
     /**
      * <p>
-     * The value used to validate the master account to the member account.
+     * The value used to validate the administrator account to the member account.
      * </p>
      * 
-     * @return The value used to validate the master account to the member account.
+     * @return The value used to validate the administrator account to the member account.
      */
 
     public String getInvitationId() {
@@ -120,11 +120,11 @@ public String getInvitationId() {
 
     /**
      * <p>
-     * The value used to validate the master account to the member account.
+     * The value used to validate the administrator account to the member account.
      * </p>
      * 
      * @param invitationId
-     *        The value used to validate the master account to the member account.
+     *        The value used to validate the administrator account to the member account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -135,11 +135,11 @@ public Master withInvitationId(String invitationId) {
 
     /**
      * <p>
-     * The status of the relationship between the master and member accounts.
+     * The status of the relationship between the administrator and member accounts.
      * </p>
      * 
      * @param relationshipStatus
-     *        The status of the relationship between the master and member accounts.
+     *        The status of the relationship between the administrator and member accounts.
      */
 
     public void setRelationshipStatus(String relationshipStatus) {
@@ -148,10 +148,10 @@ public void setRelationshipStatus(String relationshipStatus) {
 
     /**
      * <p>
-     * The status of the relationship between the master and member accounts.
+     * The status of the relationship between the administrator and member accounts.
      * </p>
      * 
-     * @return The status of the relationship between the master and member accounts.
+     * @return The status of the relationship between the administrator and member accounts.
      */
 
     public String getRelationshipStatus() {
@@ -160,11 +160,11 @@ public String getRelationshipStatus() {
 
     /**
      * <p>
-     * The status of the relationship between the master and member accounts.
+     * The status of the relationship between the administrator and member accounts.
      * </p>
      * 
      * @param relationshipStatus
-     *        The status of the relationship between the master and member accounts.
+     *        The status of the relationship between the administrator and member accounts.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Member.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Member.java
index 64558adc2ea3..c42f1748ccea 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Member.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/Member.java
@@ -42,7 +42,7 @@ public class Member implements Serializable, Cloneable, StructuredPojo {
     private String detectorId;
     /**
      * <p>
-     * The master account ID.
+     * The administrator account ID.
      * </p>
      */
     private String masterId;
@@ -54,7 +54,7 @@ public class Member implements Serializable, Cloneable, StructuredPojo {
     private String email;
     /**
      * <p>
-     * The status of the relationship between the member and the master.
+     * The status of the relationship between the member and the administrator.
      * </p>
      */
     private String relationshipStatus;
@@ -153,11 +153,11 @@ public Member withDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The master account ID.
+     * The administrator account ID.
      * </p>
      * 
      * @param masterId
-     *        The master account ID.
+     *        The administrator account ID.
      */
 
     public void setMasterId(String masterId) {
@@ -166,10 +166,10 @@ public void setMasterId(String masterId) {
 
     /**
      * <p>
-     * The master account ID.
+     * The administrator account ID.
      * </p>
      * 
-     * @return The master account ID.
+     * @return The administrator account ID.
      */
 
     public String getMasterId() {
@@ -178,11 +178,11 @@ public String getMasterId() {
 
     /**
      * <p>
-     * The master account ID.
+     * The administrator account ID.
      * </p>
      * 
      * @param masterId
-     *        The master account ID.
+     *        The administrator account ID.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -233,11 +233,11 @@ public Member withEmail(String email) {
 
     /**
      * <p>
-     * The status of the relationship between the member and the master.
+     * The status of the relationship between the member and the administrator.
      * </p>
      * 
      * @param relationshipStatus
-     *        The status of the relationship between the member and the master.
+     *        The status of the relationship between the member and the administrator.
      */
 
     public void setRelationshipStatus(String relationshipStatus) {
@@ -246,10 +246,10 @@ public void setRelationshipStatus(String relationshipStatus) {
 
     /**
      * <p>
-     * The status of the relationship between the member and the master.
+     * The status of the relationship between the member and the administrator.
      * </p>
      * 
-     * @return The status of the relationship between the member and the master.
+     * @return The status of the relationship between the member and the administrator.
      */
 
     public String getRelationshipStatus() {
@@ -258,11 +258,11 @@ public String getRelationshipStatus() {
 
     /**
      * <p>
-     * The status of the relationship between the member and the master.
+     * The status of the relationship between the member and the administrator.
      * </p>
      * 
      * @param relationshipStatus
-     *        The status of the relationship between the member and the master.
+     *        The status of the relationship between the member and the administrator.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StartMonitoringMembersRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StartMonitoringMembersRequest.java
index f3eda33b602e..41f72d26afcf 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StartMonitoringMembersRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StartMonitoringMembersRequest.java
@@ -27,7 +27,8 @@ public class StartMonitoringMembersRequest extends com.amazonaws.AmazonWebServic
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.
+     * The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to
+     * monitor.
      * </p>
      */
     private String detectorId;
@@ -40,12 +41,13 @@ public class StartMonitoringMembersRequest extends com.amazonaws.AmazonWebServic
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.
+     * The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to
+     * monitor.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector of the GuardDuty master account associated with the member accounts to
-     *        monitor.
+     *        The unique ID of the detector of the GuardDuty administrator account associated with the member accounts
+     *        to monitor.
      */
 
     public void setDetectorId(String detectorId) {
@@ -54,11 +56,12 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.
+     * The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to
+     * monitor.
      * </p>
      * 
-     * @return The unique ID of the detector of the GuardDuty master account associated with the member accounts to
-     *         monitor.
+     * @return The unique ID of the detector of the GuardDuty administrator account associated with the member accounts
+     *         to monitor.
      */
 
     public String getDetectorId() {
@@ -67,12 +70,13 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.
+     * The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to
+     * monitor.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector of the GuardDuty master account associated with the member accounts to
-     *        monitor.
+     *        The unique ID of the detector of the GuardDuty administrator account associated with the member accounts
+     *        to monitor.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StopMonitoringMembersRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StopMonitoringMembersRequest.java
index 736ce7237a9e..8cfd3931aafd 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StopMonitoringMembersRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/StopMonitoringMembersRequest.java
@@ -27,7 +27,8 @@ public class StopMonitoringMembersRequest extends com.amazonaws.AmazonWebService
 
     /**
      * <p>
-     * The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.
+     * The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member
+     * accounts.
      * </p>
      */
     private String detectorId;
@@ -40,12 +41,13 @@ public class StopMonitoringMembersRequest extends com.amazonaws.AmazonWebService
 
     /**
      * <p>
-     * The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.
+     * The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member
+     * accounts.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector associated with the GuardDuty master account that is monitoring member
-     *        accounts.
+     *        The unique ID of the detector associated with the GuardDuty administrator account that is monitoring
+     *        member accounts.
      */
 
     public void setDetectorId(String detectorId) {
@@ -54,11 +56,12 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.
+     * The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member
+     * accounts.
      * </p>
      * 
-     * @return The unique ID of the detector associated with the GuardDuty master account that is monitoring member
-     *         accounts.
+     * @return The unique ID of the detector associated with the GuardDuty administrator account that is monitoring
+     *         member accounts.
      */
 
     public String getDetectorId() {
@@ -67,12 +70,13 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.
+     * The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member
+     * accounts.
      * </p>
      * 
      * @param detectorId
-     *        The unique ID of the detector associated with the GuardDuty master account that is monitoring member
-     *        accounts.
+     *        The unique ID of the detector associated with the GuardDuty administrator account that is monitoring
+     *        member accounts.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateDetectorRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateDetectorRequest.java
index d81216d2734e..1866c8adc314 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateDetectorRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateDetectorRequest.java
@@ -45,7 +45,7 @@ public class UpdateDetectorRequest extends com.amazonaws.AmazonWebServiceRequest
     private String findingPublishingFrequency;
     /**
      * <p>
-     * An object that describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      */
     private DataSourceConfigurations dataSources;
@@ -203,11 +203,11 @@ public UpdateDetectorRequest withFindingPublishingFrequency(FindingPublishingFre
 
     /**
      * <p>
-     * An object that describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      */
 
     public void setDataSources(DataSourceConfigurations dataSources) {
@@ -216,10 +216,10 @@ public void setDataSources(DataSourceConfigurations dataSources) {
 
     /**
      * <p>
-     * An object that describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
-     * @return An object that describes which data sources will be updated.
+     * @return Describes which data sources will be updated.
      */
 
     public DataSourceConfigurations getDataSources() {
@@ -228,11 +228,11 @@ public DataSourceConfigurations getDataSources() {
 
     /**
      * <p>
-     * An object that describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object that describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateMemberDetectorsRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateMemberDetectorsRequest.java
index ade849b586eb..ab9f944f6b0e 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateMemberDetectorsRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateMemberDetectorsRequest.java
@@ -27,7 +27,7 @@ public class UpdateMemberDetectorsRequest extends com.amazonaws.AmazonWebService
 
     /**
      * <p>
-     * The detector ID of the master account.
+     * The detector ID of the administrator account.
      * </p>
      */
     private String detectorId;
@@ -39,18 +39,18 @@ public class UpdateMemberDetectorsRequest extends com.amazonaws.AmazonWebService
     private java.util.List<String> accountIds;
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      */
     private DataSourceConfigurations dataSources;
 
     /**
      * <p>
-     * The detector ID of the master account.
+     * The detector ID of the administrator account.
      * </p>
      * 
      * @param detectorId
-     *        The detector ID of the master account.
+     *        The detector ID of the administrator account.
      */
 
     public void setDetectorId(String detectorId) {
@@ -59,10 +59,10 @@ public void setDetectorId(String detectorId) {
 
     /**
      * <p>
-     * The detector ID of the master account.
+     * The detector ID of the administrator account.
      * </p>
      * 
-     * @return The detector ID of the master account.
+     * @return The detector ID of the administrator account.
      */
 
     public String getDetectorId() {
@@ -71,11 +71,11 @@ public String getDetectorId() {
 
     /**
      * <p>
-     * The detector ID of the master account.
+     * The detector ID of the administrator account.
      * </p>
      * 
      * @param detectorId
-     *        The detector ID of the master account.
+     *        The detector ID of the administrator account.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -156,11 +156,11 @@ public UpdateMemberDetectorsRequest withAccountIds(java.util.Collection<String>
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      */
 
     public void setDataSources(DataSourceConfigurations dataSources) {
@@ -169,10 +169,10 @@ public void setDataSources(DataSourceConfigurations dataSources) {
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
-     * @return An object describes which data sources will be updated.
+     * @return Describes which data sources will be updated.
      */
 
     public DataSourceConfigurations getDataSources() {
@@ -181,11 +181,11 @@ public DataSourceConfigurations getDataSources() {
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateOrganizationConfigurationRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateOrganizationConfigurationRequest.java
index 29af0aa8af50..4b270967f949 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateOrganizationConfigurationRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateOrganizationConfigurationRequest.java
@@ -39,7 +39,7 @@ public class UpdateOrganizationConfigurationRequest extends com.amazonaws.Amazon
     private Boolean autoEnable;
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      */
     private OrganizationDataSourceConfigurations dataSources;
@@ -138,11 +138,11 @@ public Boolean isAutoEnable() {
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      */
 
     public void setDataSources(OrganizationDataSourceConfigurations dataSources) {
@@ -151,10 +151,10 @@ public void setDataSources(OrganizationDataSourceConfigurations dataSources) {
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
-     * @return An object describes which data sources will be updated.
+     * @return Describes which data sources will be updated.
      */
 
     public OrganizationDataSourceConfigurations getDataSources() {
@@ -163,11 +163,11 @@ public OrganizationDataSourceConfigurations getDataSources() {
 
     /**
      * <p>
-     * An object describes which data sources will be updated.
+     * Describes which data sources will be updated.
      * </p>
      * 
      * @param dataSources
-     *        An object describes which data sources will be updated.
+     *        Describes which data sources will be updated.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateThreatIntelSetRequest.java b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateThreatIntelSetRequest.java
index 4a057645ca34..d989b31b4b0d 100644
--- a/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateThreatIntelSetRequest.java
+++ b/aws-java-sdk-guardduty/src/main/java/com/amazonaws/services/guardduty/model/UpdateThreatIntelSetRequest.java
@@ -45,8 +45,7 @@ public class UpdateThreatIntelSetRequest extends com.amazonaws.AmazonWebServiceR
     private String name;
     /**
      * <p>
-     * The updated URI of the file that contains the ThreateIntelSet. For example:
-     * https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     * The updated URI of the file that contains the ThreateIntelSet.
      * </p>
      */
     private String location;
@@ -179,13 +178,11 @@ public UpdateThreatIntelSetRequest withName(String name) {
 
     /**
      * <p>
-     * The updated URI of the file that contains the ThreateIntelSet. For example:
-     * https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     * The updated URI of the file that contains the ThreateIntelSet.
      * </p>
      * 
      * @param location
-     *        The updated URI of the file that contains the ThreateIntelSet. For example:
-     *        https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     *        The updated URI of the file that contains the ThreateIntelSet.
      */
 
     public void setLocation(String location) {
@@ -194,12 +191,10 @@ public void setLocation(String location) {
 
     /**
      * <p>
-     * The updated URI of the file that contains the ThreateIntelSet. For example:
-     * https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     * The updated URI of the file that contains the ThreateIntelSet.
      * </p>
      * 
-     * @return The updated URI of the file that contains the ThreateIntelSet. For example:
-     *         https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     * @return The updated URI of the file that contains the ThreateIntelSet.
      */
 
     public String getLocation() {
@@ -208,13 +203,11 @@ public String getLocation() {
 
     /**
      * <p>
-     * The updated URI of the file that contains the ThreateIntelSet. For example:
-     * https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     * The updated URI of the file that contains the ThreateIntelSet.
      * </p>
      * 
      * @param location
-     *        The updated URI of the file that contains the ThreateIntelSet. For example:
-     *        https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.
+     *        The updated URI of the file that contains the ThreateIntelSet.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-health/pom.xml b/aws-java-sdk-health/pom.xml
index 31c62cd6e4c6..d92cd644ae8d 100644
--- a/aws-java-sdk-health/pom.xml
+++ b/aws-java-sdk-health/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-health</artifactId>
diff --git a/aws-java-sdk-healthlake/pom.xml b/aws-java-sdk-healthlake/pom.xml
index 3ccb1caef7bb..71debfd04f66 100644
--- a/aws-java-sdk-healthlake/pom.xml
+++ b/aws-java-sdk-healthlake/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-healthlake</artifactId>
diff --git a/aws-java-sdk-honeycode/pom.xml b/aws-java-sdk-honeycode/pom.xml
index 493be0211c6c..034eed0f7636 100644
--- a/aws-java-sdk-honeycode/pom.xml
+++ b/aws-java-sdk-honeycode/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-honeycode</artifactId>
diff --git a/aws-java-sdk-iam/pom.xml b/aws-java-sdk-iam/pom.xml
index 70c87f5fdcba..eb767ebf0945 100644
--- a/aws-java-sdk-iam/pom.xml
+++ b/aws-java-sdk-iam/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iam</artifactId>
diff --git a/aws-java-sdk-identitystore/pom.xml b/aws-java-sdk-identitystore/pom.xml
index d354548e0249..af432601b7e2 100644
--- a/aws-java-sdk-identitystore/pom.xml
+++ b/aws-java-sdk-identitystore/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-identitystore</artifactId>
diff --git a/aws-java-sdk-imagebuilder/pom.xml b/aws-java-sdk-imagebuilder/pom.xml
index 387e4569a84a..ad573ace2235 100644
--- a/aws-java-sdk-imagebuilder/pom.xml
+++ b/aws-java-sdk-imagebuilder/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-imagebuilder</artifactId>
diff --git a/aws-java-sdk-importexport/pom.xml b/aws-java-sdk-importexport/pom.xml
index 7ea68cf60369..5d0503cc88a7 100644
--- a/aws-java-sdk-importexport/pom.xml
+++ b/aws-java-sdk-importexport/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-importexport</artifactId>
diff --git a/aws-java-sdk-inspector/pom.xml b/aws-java-sdk-inspector/pom.xml
index 513b990fe56a..7ff2932f3f48 100644
--- a/aws-java-sdk-inspector/pom.xml
+++ b/aws-java-sdk-inspector/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-inspector</artifactId>
diff --git a/aws-java-sdk-iot/pom.xml b/aws-java-sdk-iot/pom.xml
index 20aca99ad9e9..930ae3dbf95d 100644
--- a/aws-java-sdk-iot/pom.xml
+++ b/aws-java-sdk-iot/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iot</artifactId>
diff --git a/aws-java-sdk-iot1clickdevices/pom.xml b/aws-java-sdk-iot1clickdevices/pom.xml
index e7bcd9a6274d..9e858d42a938 100644
--- a/aws-java-sdk-iot1clickdevices/pom.xml
+++ b/aws-java-sdk-iot1clickdevices/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iot1clickdevices</artifactId>
diff --git a/aws-java-sdk-iot1clickprojects/pom.xml b/aws-java-sdk-iot1clickprojects/pom.xml
index e49f5507f4ac..49330990adb1 100644
--- a/aws-java-sdk-iot1clickprojects/pom.xml
+++ b/aws-java-sdk-iot1clickprojects/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iot1clickprojects</artifactId>
diff --git a/aws-java-sdk-iotanalytics/pom.xml b/aws-java-sdk-iotanalytics/pom.xml
index aa7ea759300f..9b4da16e9bd6 100644
--- a/aws-java-sdk-iotanalytics/pom.xml
+++ b/aws-java-sdk-iotanalytics/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotanalytics</artifactId>
diff --git a/aws-java-sdk-iotevents/pom.xml b/aws-java-sdk-iotevents/pom.xml
index da320a63d735..5ad629e5da34 100644
--- a/aws-java-sdk-iotevents/pom.xml
+++ b/aws-java-sdk-iotevents/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotevents</artifactId>
diff --git a/aws-java-sdk-ioteventsdata/pom.xml b/aws-java-sdk-ioteventsdata/pom.xml
index 9a0da89ae596..4dbd94879f7a 100644
--- a/aws-java-sdk-ioteventsdata/pom.xml
+++ b/aws-java-sdk-ioteventsdata/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ioteventsdata</artifactId>
diff --git a/aws-java-sdk-iotjobsdataplane/pom.xml b/aws-java-sdk-iotjobsdataplane/pom.xml
index ced0e22495bc..c84df644a57d 100644
--- a/aws-java-sdk-iotjobsdataplane/pom.xml
+++ b/aws-java-sdk-iotjobsdataplane/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotjobsdataplane</artifactId>
diff --git a/aws-java-sdk-iotsecuretunneling/pom.xml b/aws-java-sdk-iotsecuretunneling/pom.xml
index 43519edbe6e3..dbe4b4132394 100644
--- a/aws-java-sdk-iotsecuretunneling/pom.xml
+++ b/aws-java-sdk-iotsecuretunneling/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotsecuretunneling</artifactId>
diff --git a/aws-java-sdk-iotsitewise/pom.xml b/aws-java-sdk-iotsitewise/pom.xml
index 9cc7d8e74340..6779afe329bf 100644
--- a/aws-java-sdk-iotsitewise/pom.xml
+++ b/aws-java-sdk-iotsitewise/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotsitewise</artifactId>
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWise.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWise.java
index 8bb7e77e2712..ff710f4f5feb 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWise.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWise.java
@@ -180,9 +180,9 @@ public interface AWSIoTSiteWise {
      * </ul>
      * <important>
      * <p>
-     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15
-     * minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
-     * inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.
+     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days
+     * in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
+     * inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.
      * </p>
      * <p>
      * For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a
@@ -478,33 +478,6 @@ public interface AWSIoTSiteWise {
      */
     CreatePortalResult createPortal(CreatePortalRequest createPortalRequest);
 
-    /**
-     * <p>
-     * Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and
-     * Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL
-     * to that portal. The URL contains an authentication token that lets the IAM user access the portal.
-     * </p>
-     * 
-     * @param createPresignedPortalUrlRequest
-     * @return Result of the CreatePresignedPortalUrl operation returned by the service.
-     * @throws InvalidRequestException
-     *         The request isn't valid. This can occur if your request contains malformed JSON or unsupported
-     *         characters. Check your request and try again.
-     * @throws InternalFailureException
-     *         AWS IoT SiteWise can't process your request right now. Try again later.
-     * @throws ThrottlingException
-     *         Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise
-     *         assets that can be created per second, the allowed number of messages per second, and so on.</p>
-     *         <p>
-     *         For more information, see <a
-     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
-     *         SiteWise User Guide</i>.
-     * @sample AWSIoTSiteWise.CreatePresignedPortalUrl
-     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
-     *      target="_top">AWS API Documentation</a>
-     */
-    CreatePresignedPortalUrlResult createPresignedPortalUrl(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest);
-
     /**
      * <p>
      * Creates a project in the specified portal.
@@ -1302,6 +1275,34 @@ DescribeGatewayCapabilityConfigurationResult describeGatewayCapabilityConfigurat
      */
     ListAssetModelsResult listAssetModels(ListAssetModelsRequest listAssetModelsRequest);
 
+    /**
+     * <p>
+     * Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's
+     * root asset and all associated assets between that asset and its root.
+     * </p>
+     * 
+     * @param listAssetRelationshipsRequest
+     * @return Result of the ListAssetRelationships operation returned by the service.
+     * @throws InvalidRequestException
+     *         The request isn't valid. This can occur if your request contains malformed JSON or unsupported
+     *         characters. Check your request and try again.
+     * @throws InternalFailureException
+     *         AWS IoT SiteWise can't process your request right now. Try again later.
+     * @throws ResourceNotFoundException
+     *         The requested resource can't be found.
+     * @throws ThrottlingException
+     *         Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise
+     *         assets that can be created per second, the allowed number of messages per second, and so on.</p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @sample AWSIoTSiteWise.ListAssetRelationships
+     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships"
+     *      target="_top">AWS API Documentation</a>
+     */
+    ListAssetRelationshipsResult listAssetRelationships(ListAssetRelationshipsRequest listAssetRelationshipsRequest);
+
     /**
      * <p>
      * Retrieves a paginated list of asset summaries.
@@ -1537,6 +1538,20 @@ DescribeGatewayCapabilityConfigurationResult describeGatewayCapabilityConfigurat
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @sample AWSIoTSiteWise.ListTagsForResource
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListTagsForResource"
      *      target="_top">AWS API Documentation</a>
@@ -1634,6 +1649,20 @@ DescribeGatewayCapabilityConfigurationResult describeGatewayCapabilityConfigurat
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @throws TooManyTagsException
      *         You've reached the limit for the number of tags allowed for a resource. For more information, see <a
      *         href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions">Tag naming limits
@@ -1665,6 +1694,20 @@ DescribeGatewayCapabilityConfigurationResult describeGatewayCapabilityConfigurat
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @sample AWSIoTSiteWise.UntagResource
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/UntagResource" target="_top">AWS API
      *      Documentation</a>
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsync.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsync.java
index 7790b948ff50..3a054a640245 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsync.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsync.java
@@ -170,9 +170,9 @@ java.util.concurrent.Future<BatchDisassociateProjectAssetsResult> batchDisassoci
      * </ul>
      * <important>
      * <p>
-     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15
-     * minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
-     * inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.
+     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days
+     * in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
+     * inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.
      * </p>
      * <p>
      * For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a
@@ -223,9 +223,9 @@ java.util.concurrent.Future<BatchPutAssetPropertyValueResult> batchPutAssetPrope
      * </ul>
      * <important>
      * <p>
-     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15
-     * minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
-     * inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.
+     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days
+     * in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
+     * inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.
      * </p>
      * <p>
      * For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a
@@ -478,41 +478,6 @@ java.util.concurrent.Future<CreateGatewayResult> createGatewayAsync(CreateGatewa
     java.util.concurrent.Future<CreatePortalResult> createPortalAsync(CreatePortalRequest createPortalRequest,
             com.amazonaws.handlers.AsyncHandler<CreatePortalRequest, CreatePortalResult> asyncHandler);
 
-    /**
-     * <p>
-     * Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and
-     * Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL
-     * to that portal. The URL contains an authentication token that lets the IAM user access the portal.
-     * </p>
-     * 
-     * @param createPresignedPortalUrlRequest
-     * @return A Java Future containing the result of the CreatePresignedPortalUrl operation returned by the service.
-     * @sample AWSIoTSiteWiseAsync.CreatePresignedPortalUrl
-     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
-     *      target="_top">AWS API Documentation</a>
-     */
-    java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest);
-
-    /**
-     * <p>
-     * Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and
-     * Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL
-     * to that portal. The URL contains an authentication token that lets the IAM user access the portal.
-     * </p>
-     * 
-     * @param createPresignedPortalUrlRequest
-     * @param asyncHandler
-     *        Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
-     *        implementation of the callback methods in this interface to receive notification of successful or
-     *        unsuccessful completion of the operation.
-     * @return A Java Future containing the result of the CreatePresignedPortalUrl operation returned by the service.
-     * @sample AWSIoTSiteWiseAsyncHandler.CreatePresignedPortalUrl
-     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
-     *      target="_top">AWS API Documentation</a>
-     */
-    java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest,
-            com.amazonaws.handlers.AsyncHandler<CreatePresignedPortalUrlRequest, CreatePresignedPortalUrlResult> asyncHandler);
-
     /**
      * <p>
      * Creates a project in the specified portal.
@@ -1500,6 +1465,39 @@ java.util.concurrent.Future<ListAccessPoliciesResult> listAccessPoliciesAsync(Li
     java.util.concurrent.Future<ListAssetModelsResult> listAssetModelsAsync(ListAssetModelsRequest listAssetModelsRequest,
             com.amazonaws.handlers.AsyncHandler<ListAssetModelsRequest, ListAssetModelsResult> asyncHandler);
 
+    /**
+     * <p>
+     * Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's
+     * root asset and all associated assets between that asset and its root.
+     * </p>
+     * 
+     * @param listAssetRelationshipsRequest
+     * @return A Java Future containing the result of the ListAssetRelationships operation returned by the service.
+     * @sample AWSIoTSiteWiseAsync.ListAssetRelationships
+     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships"
+     *      target="_top">AWS API Documentation</a>
+     */
+    java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(ListAssetRelationshipsRequest listAssetRelationshipsRequest);
+
+    /**
+     * <p>
+     * Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's
+     * root asset and all associated assets between that asset and its root.
+     * </p>
+     * 
+     * @param listAssetRelationshipsRequest
+     * @param asyncHandler
+     *        Asynchronous callback handler for events in the lifecycle of the request. Users can provide an
+     *        implementation of the callback methods in this interface to receive notification of successful or
+     *        unsuccessful completion of the operation.
+     * @return A Java Future containing the result of the ListAssetRelationships operation returned by the service.
+     * @sample AWSIoTSiteWiseAsyncHandler.ListAssetRelationships
+     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships"
+     *      target="_top">AWS API Documentation</a>
+     */
+    java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(ListAssetRelationshipsRequest listAssetRelationshipsRequest,
+            com.amazonaws.handlers.AsyncHandler<ListAssetRelationshipsRequest, ListAssetRelationshipsResult> asyncHandler);
+
     /**
      * <p>
      * Retrieves a paginated list of asset summaries.
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsyncClient.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsyncClient.java
index 88d76eeacef6..c5814090cd0f 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsyncClient.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseAsyncClient.java
@@ -412,39 +412,6 @@ public CreatePortalResult call() throws Exception {
         });
     }
 
-    @Override
-    public java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(CreatePresignedPortalUrlRequest request) {
-
-        return createPresignedPortalUrlAsync(request, null);
-    }
-
-    @Override
-    public java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(final CreatePresignedPortalUrlRequest request,
-            final com.amazonaws.handlers.AsyncHandler<CreatePresignedPortalUrlRequest, CreatePresignedPortalUrlResult> asyncHandler) {
-        final CreatePresignedPortalUrlRequest finalRequest = beforeClientExecution(request);
-
-        return executorService.submit(new java.util.concurrent.Callable<CreatePresignedPortalUrlResult>() {
-            @Override
-            public CreatePresignedPortalUrlResult call() throws Exception {
-                CreatePresignedPortalUrlResult result = null;
-
-                try {
-                    result = executeCreatePresignedPortalUrl(finalRequest);
-                } catch (Exception ex) {
-                    if (asyncHandler != null) {
-                        asyncHandler.onError(ex);
-                    }
-                    throw ex;
-                }
-
-                if (asyncHandler != null) {
-                    asyncHandler.onSuccess(finalRequest, result);
-                }
-                return result;
-            }
-        });
-    }
-
     @Override
     public java.util.concurrent.Future<CreateProjectResult> createProjectAsync(CreateProjectRequest request) {
 
@@ -1274,6 +1241,39 @@ public ListAssetModelsResult call() throws Exception {
         });
     }
 
+    @Override
+    public java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(ListAssetRelationshipsRequest request) {
+
+        return listAssetRelationshipsAsync(request, null);
+    }
+
+    @Override
+    public java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(final ListAssetRelationshipsRequest request,
+            final com.amazonaws.handlers.AsyncHandler<ListAssetRelationshipsRequest, ListAssetRelationshipsResult> asyncHandler) {
+        final ListAssetRelationshipsRequest finalRequest = beforeClientExecution(request);
+
+        return executorService.submit(new java.util.concurrent.Callable<ListAssetRelationshipsResult>() {
+            @Override
+            public ListAssetRelationshipsResult call() throws Exception {
+                ListAssetRelationshipsResult result = null;
+
+                try {
+                    result = executeListAssetRelationships(finalRequest);
+                } catch (Exception ex) {
+                    if (asyncHandler != null) {
+                        asyncHandler.onError(ex);
+                    }
+                    throw ex;
+                }
+
+                if (asyncHandler != null) {
+                    asyncHandler.onSuccess(finalRequest, result);
+                }
+                return result;
+            }
+        });
+    }
+
     @Override
     public java.util.concurrent.Future<ListAssetsResult> listAssetsAsync(ListAssetsRequest request) {
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseClient.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseClient.java
index 9eb69aa730ae..c2c337848a9b 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseClient.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AWSIoTSiteWiseClient.java
@@ -104,6 +104,9 @@ public class AWSIoTSiteWiseClient extends AmazonWebServiceClient implements AWSI
                     .addErrorMetadata(
                             new JsonErrorShapeMetadata().withErrorCode("ThrottlingException").withExceptionUnmarshaller(
                                     com.amazonaws.services.iotsitewise.model.transform.ThrottlingExceptionUnmarshaller.getInstance()))
+                    .addErrorMetadata(
+                            new JsonErrorShapeMetadata().withErrorCode("UnauthorizedException").withExceptionUnmarshaller(
+                                    com.amazonaws.services.iotsitewise.model.transform.UnauthorizedExceptionUnmarshaller.getInstance()))
                     .addErrorMetadata(
                             new JsonErrorShapeMetadata().withErrorCode("TooManyTagsException").withExceptionUnmarshaller(
                                     com.amazonaws.services.iotsitewise.model.transform.TooManyTagsExceptionUnmarshaller.getInstance()))
@@ -447,9 +450,9 @@ final BatchDisassociateProjectAssetsResult executeBatchDisassociateProjectAssets
      * </ul>
      * <important>
      * <p>
-     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15
-     * minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
-     * inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.
+     * With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days
+     * in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the
+     * inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.
      * </p>
      * <p>
      * For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a
@@ -1097,85 +1100,6 @@ final CreatePortalResult executeCreatePortal(CreatePortalRequest createPortalReq
         }
     }
 
-    /**
-     * <p>
-     * Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and
-     * Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL
-     * to that portal. The URL contains an authentication token that lets the IAM user access the portal.
-     * </p>
-     * 
-     * @param createPresignedPortalUrlRequest
-     * @return Result of the CreatePresignedPortalUrl operation returned by the service.
-     * @throws InvalidRequestException
-     *         The request isn't valid. This can occur if your request contains malformed JSON or unsupported
-     *         characters. Check your request and try again.
-     * @throws InternalFailureException
-     *         AWS IoT SiteWise can't process your request right now. Try again later.
-     * @throws ThrottlingException
-     *         Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise
-     *         assets that can be created per second, the allowed number of messages per second, and so on.</p>
-     *         <p>
-     *         For more information, see <a
-     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
-     *         SiteWise User Guide</i>.
-     * @sample AWSIoTSiteWise.CreatePresignedPortalUrl
-     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
-     *      target="_top">AWS API Documentation</a>
-     */
-    @Override
-    public CreatePresignedPortalUrlResult createPresignedPortalUrl(CreatePresignedPortalUrlRequest request) {
-        request = beforeClientExecution(request);
-        return executeCreatePresignedPortalUrl(request);
-    }
-
-    @SdkInternalApi
-    final CreatePresignedPortalUrlResult executeCreatePresignedPortalUrl(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest) {
-
-        ExecutionContext executionContext = createExecutionContext(createPresignedPortalUrlRequest);
-        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
-        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
-        Request<CreatePresignedPortalUrlRequest> request = null;
-        Response<CreatePresignedPortalUrlResult> response = null;
-
-        try {
-            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
-            try {
-                request = new CreatePresignedPortalUrlRequestProtocolMarshaller(protocolFactory).marshall(super
-                        .beforeMarshalling(createPresignedPortalUrlRequest));
-                // Binds the request metrics to the current request.
-                request.setAWSRequestMetrics(awsRequestMetrics);
-                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
-                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
-                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "IoTSiteWise");
-                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreatePresignedPortalUrl");
-                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
-
-            } finally {
-                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
-            }
-
-            URI endpointTraitHost = null;
-            if (!clientConfiguration.isDisableHostPrefixInjection()) {
-
-                String hostPrefix = "monitor.";
-                String resolvedHostPrefix = String.format("monitor.");
-
-                endpointTraitHost = UriResourcePathUtils.updateUriHost(endpoint, resolvedHostPrefix);
-            }
-
-            HttpResponseHandler<AmazonWebServiceResponse<CreatePresignedPortalUrlResult>> responseHandler = protocolFactory.createResponseHandler(
-                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
-                    new CreatePresignedPortalUrlResultJsonUnmarshaller());
-            response = invoke(request, responseHandler, executionContext, null, endpointTraitHost);
-
-            return response.getAwsResponse();
-
-        } finally {
-
-            endClientExecution(awsRequestMetrics, request, response);
-        }
-    }
-
     /**
      * <p>
      * Creates a project in the specified portal.
@@ -3225,6 +3149,85 @@ final ListAssetModelsResult executeListAssetModels(ListAssetModelsRequest listAs
         }
     }
 
+    /**
+     * <p>
+     * Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's
+     * root asset and all associated assets between that asset and its root.
+     * </p>
+     * 
+     * @param listAssetRelationshipsRequest
+     * @return Result of the ListAssetRelationships operation returned by the service.
+     * @throws InvalidRequestException
+     *         The request isn't valid. This can occur if your request contains malformed JSON or unsupported
+     *         characters. Check your request and try again.
+     * @throws InternalFailureException
+     *         AWS IoT SiteWise can't process your request right now. Try again later.
+     * @throws ResourceNotFoundException
+     *         The requested resource can't be found.
+     * @throws ThrottlingException
+     *         Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise
+     *         assets that can be created per second, the allowed number of messages per second, and so on.</p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @sample AWSIoTSiteWise.ListAssetRelationships
+     * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships"
+     *      target="_top">AWS API Documentation</a>
+     */
+    @Override
+    public ListAssetRelationshipsResult listAssetRelationships(ListAssetRelationshipsRequest request) {
+        request = beforeClientExecution(request);
+        return executeListAssetRelationships(request);
+    }
+
+    @SdkInternalApi
+    final ListAssetRelationshipsResult executeListAssetRelationships(ListAssetRelationshipsRequest listAssetRelationshipsRequest) {
+
+        ExecutionContext executionContext = createExecutionContext(listAssetRelationshipsRequest);
+        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
+        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
+        Request<ListAssetRelationshipsRequest> request = null;
+        Response<ListAssetRelationshipsResult> response = null;
+
+        try {
+            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
+            try {
+                request = new ListAssetRelationshipsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listAssetRelationshipsRequest));
+                // Binds the request metrics to the current request.
+                request.setAWSRequestMetrics(awsRequestMetrics);
+                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
+                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
+                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "IoTSiteWise");
+                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListAssetRelationships");
+                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);
+
+            } finally {
+                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
+            }
+
+            URI endpointTraitHost = null;
+            if (!clientConfiguration.isDisableHostPrefixInjection()) {
+
+                String hostPrefix = "model.";
+                String resolvedHostPrefix = String.format("model.");
+
+                endpointTraitHost = UriResourcePathUtils.updateUriHost(endpoint, resolvedHostPrefix);
+            }
+
+            HttpResponseHandler<AmazonWebServiceResponse<ListAssetRelationshipsResult>> responseHandler = protocolFactory.createResponseHandler(
+                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
+                    new ListAssetRelationshipsResultJsonUnmarshaller());
+            response = invoke(request, responseHandler, executionContext, null, endpointTraitHost);
+
+            return response.getAwsResponse();
+
+        } finally {
+
+            endClientExecution(awsRequestMetrics, request, response);
+        }
+    }
+
     /**
      * <p>
      * Retrieves a paginated list of asset summaries.
@@ -3810,6 +3813,20 @@ final ListProjectsResult executeListProjects(ListProjectsRequest listProjectsReq
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @sample AWSIoTSiteWise.ListTagsForResource
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListTagsForResource"
      *      target="_top">AWS API Documentation</a>
@@ -4042,6 +4059,20 @@ final PutLoggingOptionsResult executePutLoggingOptions(PutLoggingOptionsRequest
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @throws TooManyTagsException
      *         You've reached the limit for the number of tags allowed for a resource. For more information, see <a
      *         href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions">Tag naming limits
@@ -4114,6 +4145,20 @@ final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest
      *         SiteWise User Guide</i>.
      * @throws ResourceNotFoundException
      *         The requested resource can't be found.
+     * @throws ConflictingOperationException
+     *         Your request has conflicting operations. This can occur if you're trying to perform more than one
+     *         operation on the same resource at the same time.
+     * @throws LimitExceededException
+     *         You've reached the limit for a resource. For example, this can occur if you're trying to associate more
+     *         than the allowed number of child assets or attempting to create more than the allowed number of
+     *         properties for an asset model.
+     *         </p>
+     *         <p>
+     *         For more information, see <a
+     *         href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>AWS IoT
+     *         SiteWise User Guide</i>.
+     * @throws UnauthorizedException
+     *         You are not authorized.
      * @sample AWSIoTSiteWise.UntagResource
      * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/UntagResource" target="_top">AWS API
      *      Documentation</a>
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWise.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWise.java
index 8c3645d9f8dd..dec6407253df 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWise.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWise.java
@@ -78,11 +78,6 @@ public CreatePortalResult createPortal(CreatePortalRequest request) {
         throw new java.lang.UnsupportedOperationException();
     }
 
-    @Override
-    public CreatePresignedPortalUrlResult createPresignedPortalUrl(CreatePresignedPortalUrlRequest request) {
-        throw new java.lang.UnsupportedOperationException();
-    }
-
     @Override
     public CreateProjectResult createProject(CreateProjectRequest request) {
         throw new java.lang.UnsupportedOperationException();
@@ -208,6 +203,11 @@ public ListAssetModelsResult listAssetModels(ListAssetModelsRequest request) {
         throw new java.lang.UnsupportedOperationException();
     }
 
+    @Override
+    public ListAssetRelationshipsResult listAssetRelationships(ListAssetRelationshipsRequest request) {
+        throw new java.lang.UnsupportedOperationException();
+    }
+
     @Override
     public ListAssetsResult listAssets(ListAssetsRequest request) {
         throw new java.lang.UnsupportedOperationException();
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWiseAsync.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWiseAsync.java
index 4fa02ce2785d..004a0dc5c599 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWiseAsync.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/AbstractAWSIoTSiteWiseAsync.java
@@ -157,19 +157,6 @@ public java.util.concurrent.Future<CreatePortalResult> createPortalAsync(CreateP
         throw new java.lang.UnsupportedOperationException();
     }
 
-    @Override
-    public java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(CreatePresignedPortalUrlRequest request) {
-
-        return createPresignedPortalUrlAsync(request, null);
-    }
-
-    @Override
-    public java.util.concurrent.Future<CreatePresignedPortalUrlResult> createPresignedPortalUrlAsync(CreatePresignedPortalUrlRequest request,
-            com.amazonaws.handlers.AsyncHandler<CreatePresignedPortalUrlRequest, CreatePresignedPortalUrlResult> asyncHandler) {
-
-        throw new java.lang.UnsupportedOperationException();
-    }
-
     @Override
     public java.util.concurrent.Future<CreateProjectResult> createProjectAsync(CreateProjectRequest request) {
 
@@ -499,6 +486,19 @@ public java.util.concurrent.Future<ListAssetModelsResult> listAssetModelsAsync(L
         throw new java.lang.UnsupportedOperationException();
     }
 
+    @Override
+    public java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(ListAssetRelationshipsRequest request) {
+
+        return listAssetRelationshipsAsync(request, null);
+    }
+
+    @Override
+    public java.util.concurrent.Future<ListAssetRelationshipsResult> listAssetRelationshipsAsync(ListAssetRelationshipsRequest request,
+            com.amazonaws.handlers.AsyncHandler<ListAssetRelationshipsRequest, ListAssetRelationshipsResult> asyncHandler) {
+
+        throw new java.lang.UnsupportedOperationException();
+    }
+
     @Override
     public java.util.concurrent.Future<ListAssetsResult> listAssetsAsync(ListAssetsRequest request) {
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetCompositeModel.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetCompositeModel.java
new file mode 100644
index 000000000000..56366e4b0938
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetCompositeModel.java
@@ -0,0 +1,326 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains information about a composite model in an asset. This object contains the asset's properties that you define
+ * in the composite model.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetCompositeModel" target="_top">AWS
+ *      API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetCompositeModel implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     */
+    private String name;
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     */
+    private String description;
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     */
+    private String type;
+    /**
+     * <p>
+     * The asset properties that this composite model defines.
+     * </p>
+     */
+    private java.util.List<AssetProperty> properties;
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     */
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @return The name of the composite model.
+     */
+
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetCompositeModel withName(String name) {
+        setName(name);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     */
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @return The description of the composite model.
+     */
+
+    public String getDescription() {
+        return this.description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetCompositeModel withDescription(String description) {
+        setDescription(description);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetCompositeModel withType(String type) {
+        setType(type);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset properties that this composite model defines.
+     * </p>
+     * 
+     * @return The asset properties that this composite model defines.
+     */
+
+    public java.util.List<AssetProperty> getProperties() {
+        return properties;
+    }
+
+    /**
+     * <p>
+     * The asset properties that this composite model defines.
+     * </p>
+     * 
+     * @param properties
+     *        The asset properties that this composite model defines.
+     */
+
+    public void setProperties(java.util.Collection<AssetProperty> properties) {
+        if (properties == null) {
+            this.properties = null;
+            return;
+        }
+
+        this.properties = new java.util.ArrayList<AssetProperty>(properties);
+    }
+
+    /**
+     * <p>
+     * The asset properties that this composite model defines.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to
+     * override the existing values.
+     * </p>
+     * 
+     * @param properties
+     *        The asset properties that this composite model defines.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetCompositeModel withProperties(AssetProperty... properties) {
+        if (this.properties == null) {
+            setProperties(new java.util.ArrayList<AssetProperty>(properties.length));
+        }
+        for (AssetProperty ele : properties) {
+            this.properties.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset properties that this composite model defines.
+     * </p>
+     * 
+     * @param properties
+     *        The asset properties that this composite model defines.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetCompositeModel withProperties(java.util.Collection<AssetProperty> properties) {
+        setProperties(properties);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getName() != null)
+            sb.append("Name: ").append(getName()).append(",");
+        if (getDescription() != null)
+            sb.append("Description: ").append(getDescription()).append(",");
+        if (getType() != null)
+            sb.append("Type: ").append(getType()).append(",");
+        if (getProperties() != null)
+            sb.append("Properties: ").append(getProperties());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof AssetCompositeModel == false)
+            return false;
+        AssetCompositeModel other = (AssetCompositeModel) obj;
+        if (other.getName() == null ^ this.getName() == null)
+            return false;
+        if (other.getName() != null && other.getName().equals(this.getName()) == false)
+            return false;
+        if (other.getDescription() == null ^ this.getDescription() == null)
+            return false;
+        if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
+            return false;
+        if (other.getType() == null ^ this.getType() == null)
+            return false;
+        if (other.getType() != null && other.getType().equals(this.getType()) == false)
+            return false;
+        if (other.getProperties() == null ^ this.getProperties() == null)
+            return false;
+        if (other.getProperties() != null && other.getProperties().equals(this.getProperties()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
+        hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
+        hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
+        hashCode = prime * hashCode + ((getProperties() == null) ? 0 : getProperties().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public AssetCompositeModel clone() {
+        try {
+            return (AssetCompositeModel) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.AssetCompositeModelMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetHierarchyInfo.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetHierarchyInfo.java
new file mode 100644
index 000000000000..37f9b983e999
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetHierarchyInfo.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains information about a parent asset and a child asset that are related through an asset hierarchy.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetHierarchyInfo" target="_top">AWS API
+ *      Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetHierarchyInfo implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The ID of the parent asset in this asset relationship.
+     * </p>
+     */
+    private String parentAssetId;
+    /**
+     * <p>
+     * The ID of the child asset in this asset relationship.
+     * </p>
+     */
+    private String childAssetId;
+
+    /**
+     * <p>
+     * The ID of the parent asset in this asset relationship.
+     * </p>
+     * 
+     * @param parentAssetId
+     *        The ID of the parent asset in this asset relationship.
+     */
+
+    public void setParentAssetId(String parentAssetId) {
+        this.parentAssetId = parentAssetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the parent asset in this asset relationship.
+     * </p>
+     * 
+     * @return The ID of the parent asset in this asset relationship.
+     */
+
+    public String getParentAssetId() {
+        return this.parentAssetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the parent asset in this asset relationship.
+     * </p>
+     * 
+     * @param parentAssetId
+     *        The ID of the parent asset in this asset relationship.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetHierarchyInfo withParentAssetId(String parentAssetId) {
+        setParentAssetId(parentAssetId);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The ID of the child asset in this asset relationship.
+     * </p>
+     * 
+     * @param childAssetId
+     *        The ID of the child asset in this asset relationship.
+     */
+
+    public void setChildAssetId(String childAssetId) {
+        this.childAssetId = childAssetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the child asset in this asset relationship.
+     * </p>
+     * 
+     * @return The ID of the child asset in this asset relationship.
+     */
+
+    public String getChildAssetId() {
+        return this.childAssetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the child asset in this asset relationship.
+     * </p>
+     * 
+     * @param childAssetId
+     *        The ID of the child asset in this asset relationship.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetHierarchyInfo withChildAssetId(String childAssetId) {
+        setChildAssetId(childAssetId);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getParentAssetId() != null)
+            sb.append("ParentAssetId: ").append(getParentAssetId()).append(",");
+        if (getChildAssetId() != null)
+            sb.append("ChildAssetId: ").append(getChildAssetId());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof AssetHierarchyInfo == false)
+            return false;
+        AssetHierarchyInfo other = (AssetHierarchyInfo) obj;
+        if (other.getParentAssetId() == null ^ this.getParentAssetId() == null)
+            return false;
+        if (other.getParentAssetId() != null && other.getParentAssetId().equals(this.getParentAssetId()) == false)
+            return false;
+        if (other.getChildAssetId() == null ^ this.getChildAssetId() == null)
+            return false;
+        if (other.getChildAssetId() != null && other.getChildAssetId().equals(this.getChildAssetId()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getParentAssetId() == null) ? 0 : getParentAssetId().hashCode());
+        hashCode = prime * hashCode + ((getChildAssetId() == null) ? 0 : getChildAssetId().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public AssetHierarchyInfo clone() {
+        try {
+            return (AssetHierarchyInfo) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.AssetHierarchyInfoMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModel.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModel.java
new file mode 100644
index 000000000000..326cf01ccc13
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModel.java
@@ -0,0 +1,326 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains information about a composite model in an asset model. This object contains the asset property definitions
+ * that you define in the composite model.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetModelCompositeModel"
+ *      target="_top">AWS API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetModelCompositeModel implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     */
+    private String name;
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     */
+    private String description;
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     */
+    private String type;
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     */
+    private java.util.List<AssetModelProperty> properties;
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     */
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @return The name of the composite model.
+     */
+
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModel withName(String name) {
+        setName(name);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     */
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @return The description of the composite model.
+     */
+
+    public String getDescription() {
+        return this.description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModel withDescription(String description) {
+        setDescription(description);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModel withType(String type) {
+        setType(type);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @return The asset property definitions for this composite model.
+     */
+
+    public java.util.List<AssetModelProperty> getProperties() {
+        return properties;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     */
+
+    public void setProperties(java.util.Collection<AssetModelProperty> properties) {
+        if (properties == null) {
+            this.properties = null;
+            return;
+        }
+
+        this.properties = new java.util.ArrayList<AssetModelProperty>(properties);
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to
+     * override the existing values.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModel withProperties(AssetModelProperty... properties) {
+        if (this.properties == null) {
+            setProperties(new java.util.ArrayList<AssetModelProperty>(properties.length));
+        }
+        for (AssetModelProperty ele : properties) {
+            this.properties.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModel withProperties(java.util.Collection<AssetModelProperty> properties) {
+        setProperties(properties);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getName() != null)
+            sb.append("Name: ").append(getName()).append(",");
+        if (getDescription() != null)
+            sb.append("Description: ").append(getDescription()).append(",");
+        if (getType() != null)
+            sb.append("Type: ").append(getType()).append(",");
+        if (getProperties() != null)
+            sb.append("Properties: ").append(getProperties());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof AssetModelCompositeModel == false)
+            return false;
+        AssetModelCompositeModel other = (AssetModelCompositeModel) obj;
+        if (other.getName() == null ^ this.getName() == null)
+            return false;
+        if (other.getName() != null && other.getName().equals(this.getName()) == false)
+            return false;
+        if (other.getDescription() == null ^ this.getDescription() == null)
+            return false;
+        if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
+            return false;
+        if (other.getType() == null ^ this.getType() == null)
+            return false;
+        if (other.getType() != null && other.getType().equals(this.getType()) == false)
+            return false;
+        if (other.getProperties() == null ^ this.getProperties() == null)
+            return false;
+        if (other.getProperties() != null && other.getProperties().equals(this.getProperties()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
+        hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
+        hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
+        hashCode = prime * hashCode + ((getProperties() == null) ? 0 : getProperties().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public AssetModelCompositeModel clone() {
+        try {
+            return (AssetModelCompositeModel) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.AssetModelCompositeModelMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModelDefinition.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModelDefinition.java
new file mode 100644
index 000000000000..1fc51d28cbab
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelCompositeModelDefinition.java
@@ -0,0 +1,326 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains a composite model definition in an asset model. This composite model definition is applied to all assets
+ * created from the asset model.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetModelCompositeModelDefinition"
+ *      target="_top">AWS API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetModelCompositeModelDefinition implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     */
+    private String name;
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     */
+    private String description;
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     */
+    private String type;
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     */
+    private java.util.List<AssetModelPropertyDefinition> properties;
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     */
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @return The name of the composite model.
+     */
+
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * <p>
+     * The name of the composite model.
+     * </p>
+     * 
+     * @param name
+     *        The name of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModelDefinition withName(String name) {
+        setName(name);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     */
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @return The description of the composite model.
+     */
+
+    public String getDescription() {
+        return this.description;
+    }
+
+    /**
+     * <p>
+     * The description of the composite model.
+     * </p>
+     * 
+     * @param description
+     *        The description of the composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModelDefinition withDescription(String description) {
+        setDescription(description);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     */
+
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModelDefinition withType(String type) {
+        setType(type);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @return The asset property definitions for this composite model.
+     */
+
+    public java.util.List<AssetModelPropertyDefinition> getProperties() {
+        return properties;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     */
+
+    public void setProperties(java.util.Collection<AssetModelPropertyDefinition> properties) {
+        if (properties == null) {
+            this.properties = null;
+            return;
+        }
+
+        this.properties = new java.util.ArrayList<AssetModelPropertyDefinition>(properties);
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to
+     * override the existing values.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModelDefinition withProperties(AssetModelPropertyDefinition... properties) {
+        if (this.properties == null) {
+            setProperties(new java.util.ArrayList<AssetModelPropertyDefinition>(properties.length));
+        }
+        for (AssetModelPropertyDefinition ele : properties) {
+            this.properties.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The asset property definitions for this composite model.
+     * </p>
+     * 
+     * @param properties
+     *        The asset property definitions for this composite model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelCompositeModelDefinition withProperties(java.util.Collection<AssetModelPropertyDefinition> properties) {
+        setProperties(properties);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getName() != null)
+            sb.append("Name: ").append(getName()).append(",");
+        if (getDescription() != null)
+            sb.append("Description: ").append(getDescription()).append(",");
+        if (getType() != null)
+            sb.append("Type: ").append(getType()).append(",");
+        if (getProperties() != null)
+            sb.append("Properties: ").append(getProperties());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof AssetModelCompositeModelDefinition == false)
+            return false;
+        AssetModelCompositeModelDefinition other = (AssetModelCompositeModelDefinition) obj;
+        if (other.getName() == null ^ this.getName() == null)
+            return false;
+        if (other.getName() != null && other.getName().equals(this.getName()) == false)
+            return false;
+        if (other.getDescription() == null ^ this.getDescription() == null)
+            return false;
+        if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
+            return false;
+        if (other.getType() == null ^ this.getType() == null)
+            return false;
+        if (other.getType() != null && other.getType().equals(this.getType()) == false)
+            return false;
+        if (other.getProperties() == null ^ this.getProperties() == null)
+            return false;
+        if (other.getProperties() != null && other.getProperties().equals(this.getProperties()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
+        hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
+        hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
+        hashCode = prime * hashCode + ((getProperties() == null) ? 0 : getProperties().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public AssetModelCompositeModelDefinition clone() {
+        try {
+            return (AssetModelCompositeModelDefinition) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.AssetModelCompositeModelDefinitionMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelProperty.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelProperty.java
index e0c759a7e1a6..80176db29588 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelProperty.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelProperty.java
@@ -46,6 +46,13 @@ public class AssetModelProperty implements Serializable, Cloneable, StructuredPo
      * </p>
      */
     private String dataType;
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     */
+    private String dataTypeSpec;
     /**
      * <p>
      * The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.
@@ -198,6 +205,52 @@ public AssetModelProperty withDataType(PropertyDataType dataType) {
         return this;
     }
 
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter exists on properties that have the
+     *        <code>STRUCT</code> data type.
+     */
+
+    public void setDataTypeSpec(String dataTypeSpec) {
+        this.dataTypeSpec = dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @return The data type of the structure for this property. This parameter exists on properties that have the
+     *         <code>STRUCT</code> data type.
+     */
+
+    public String getDataTypeSpec() {
+        return this.dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter exists on properties that have the
+     *        <code>STRUCT</code> data type.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelProperty withDataTypeSpec(String dataTypeSpec) {
+        setDataTypeSpec(dataTypeSpec);
+        return this;
+    }
+
     /**
      * <p>
      * The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.
@@ -296,6 +349,8 @@ public String toString() {
             sb.append("Name: ").append(getName()).append(",");
         if (getDataType() != null)
             sb.append("DataType: ").append(getDataType()).append(",");
+        if (getDataTypeSpec() != null)
+            sb.append("DataTypeSpec: ").append(getDataTypeSpec()).append(",");
         if (getUnit() != null)
             sb.append("Unit: ").append(getUnit()).append(",");
         if (getType() != null)
@@ -326,6 +381,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getDataType() != null && other.getDataType().equals(this.getDataType()) == false)
             return false;
+        if (other.getDataTypeSpec() == null ^ this.getDataTypeSpec() == null)
+            return false;
+        if (other.getDataTypeSpec() != null && other.getDataTypeSpec().equals(this.getDataTypeSpec()) == false)
+            return false;
         if (other.getUnit() == null ^ this.getUnit() == null)
             return false;
         if (other.getUnit() != null && other.getUnit().equals(this.getUnit()) == false)
@@ -345,6 +404,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getId() == null) ? 0 : getId().hashCode());
         hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
         hashCode = prime * hashCode + ((getDataType() == null) ? 0 : getDataType().hashCode());
+        hashCode = prime * hashCode + ((getDataTypeSpec() == null) ? 0 : getDataTypeSpec().hashCode());
         hashCode = prime * hashCode + ((getUnit() == null) ? 0 : getUnit().hashCode());
         hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
         return hashCode;
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelPropertyDefinition.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelPropertyDefinition.java
index a81a1582b9c2..01204ad24a3d 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelPropertyDefinition.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetModelPropertyDefinition.java
@@ -39,8 +39,23 @@ public class AssetModelPropertyDefinition implements Serializable, Cloneable, St
      * <p>
      * The data type of the property definition.
      * </p>
+     * <p>
+     * If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the
+     * structure for this property.
+     * </p>
      */
     private String dataType;
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter is required on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * <p>
+     * The options for this parameter depend on the type of the composite model in which you define this property. Use
+     * <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     * </p>
+     */
+    private String dataTypeSpec;
     /**
      * <p>
      * The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.
@@ -99,9 +114,16 @@ public AssetModelPropertyDefinition withName(String name) {
      * <p>
      * The data type of the property definition.
      * </p>
+     * <p>
+     * If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the
+     * structure for this property.
+     * </p>
      * 
      * @param dataType
-     *        The data type of the property definition.
+     *        The data type of the property definition.</p>
+     *        <p>
+     *        If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type
+     *        of the structure for this property.
      * @see PropertyDataType
      */
 
@@ -113,8 +135,15 @@ public void setDataType(String dataType) {
      * <p>
      * The data type of the property definition.
      * </p>
+     * <p>
+     * If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the
+     * structure for this property.
+     * </p>
      * 
-     * @return The data type of the property definition.
+     * @return The data type of the property definition.</p>
+     *         <p>
+     *         If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type
+     *         of the structure for this property.
      * @see PropertyDataType
      */
 
@@ -126,9 +155,16 @@ public String getDataType() {
      * <p>
      * The data type of the property definition.
      * </p>
+     * <p>
+     * If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the
+     * structure for this property.
+     * </p>
      * 
      * @param dataType
-     *        The data type of the property definition.
+     *        The data type of the property definition.</p>
+     *        <p>
+     *        If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type
+     *        of the structure for this property.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see PropertyDataType
      */
@@ -142,9 +178,16 @@ public AssetModelPropertyDefinition withDataType(String dataType) {
      * <p>
      * The data type of the property definition.
      * </p>
+     * <p>
+     * If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the
+     * structure for this property.
+     * </p>
      * 
      * @param dataType
-     *        The data type of the property definition.
+     *        The data type of the property definition.</p>
+     *        <p>
+     *        If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type
+     *        of the structure for this property.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see PropertyDataType
      */
@@ -154,6 +197,73 @@ public AssetModelPropertyDefinition withDataType(PropertyDataType dataType) {
         return this;
     }
 
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter is required on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * <p>
+     * The options for this parameter depend on the type of the composite model in which you define this property. Use
+     * <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter is required on properties that have the
+     *        <code>STRUCT</code> data type.</p>
+     *        <p>
+     *        The options for this parameter depend on the type of the composite model in which you define this
+     *        property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     */
+
+    public void setDataTypeSpec(String dataTypeSpec) {
+        this.dataTypeSpec = dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter is required on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * <p>
+     * The options for this parameter depend on the type of the composite model in which you define this property. Use
+     * <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     * </p>
+     * 
+     * @return The data type of the structure for this property. This parameter is required on properties that have the
+     *         <code>STRUCT</code> data type.</p>
+     *         <p>
+     *         The options for this parameter depend on the type of the composite model in which you define this
+     *         property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     */
+
+    public String getDataTypeSpec() {
+        return this.dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter is required on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * <p>
+     * The options for this parameter depend on the type of the composite model in which you define this property. Use
+     * <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter is required on properties that have the
+     *        <code>STRUCT</code> data type.</p>
+     *        <p>
+     *        The options for this parameter depend on the type of the composite model in which you define this
+     *        property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetModelPropertyDefinition withDataTypeSpec(String dataTypeSpec) {
+        setDataTypeSpec(dataTypeSpec);
+        return this;
+    }
+
     /**
      * <p>
      * The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.
@@ -256,6 +366,8 @@ public String toString() {
             sb.append("Name: ").append(getName()).append(",");
         if (getDataType() != null)
             sb.append("DataType: ").append(getDataType()).append(",");
+        if (getDataTypeSpec() != null)
+            sb.append("DataTypeSpec: ").append(getDataTypeSpec()).append(",");
         if (getUnit() != null)
             sb.append("Unit: ").append(getUnit()).append(",");
         if (getType() != null)
@@ -282,6 +394,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getDataType() != null && other.getDataType().equals(this.getDataType()) == false)
             return false;
+        if (other.getDataTypeSpec() == null ^ this.getDataTypeSpec() == null)
+            return false;
+        if (other.getDataTypeSpec() != null && other.getDataTypeSpec().equals(this.getDataTypeSpec()) == false)
+            return false;
         if (other.getUnit() == null ^ this.getUnit() == null)
             return false;
         if (other.getUnit() != null && other.getUnit().equals(this.getUnit()) == false)
@@ -300,6 +416,7 @@ public int hashCode() {
 
         hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
         hashCode = prime * hashCode + ((getDataType() == null) ? 0 : getDataType().hashCode());
+        hashCode = prime * hashCode + ((getDataTypeSpec() == null) ? 0 : getDataTypeSpec().hashCode());
         hashCode = prime * hashCode + ((getUnit() == null) ? 0 : getUnit().hashCode());
         hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
         return hashCode;
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetProperty.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetProperty.java
index 249411b690c2..087d8a7853ea 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetProperty.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetProperty.java
@@ -63,6 +63,13 @@ public class AssetProperty implements Serializable, Cloneable, StructuredPojo {
      * </p>
      */
     private String dataType;
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     */
+    private String dataTypeSpec;
     /**
      * <p>
      * The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.
@@ -319,6 +326,52 @@ public AssetProperty withDataType(PropertyDataType dataType) {
         return this;
     }
 
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter exists on properties that have the
+     *        <code>STRUCT</code> data type.
+     */
+
+    public void setDataTypeSpec(String dataTypeSpec) {
+        this.dataTypeSpec = dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @return The data type of the structure for this property. This parameter exists on properties that have the
+     *         <code>STRUCT</code> data type.
+     */
+
+    public String getDataTypeSpec() {
+        return this.dataTypeSpec;
+    }
+
+    /**
+     * <p>
+     * The data type of the structure for this property. This parameter exists on properties that have the
+     * <code>STRUCT</code> data type.
+     * </p>
+     * 
+     * @param dataTypeSpec
+     *        The data type of the structure for this property. This parameter exists on properties that have the
+     *        <code>STRUCT</code> data type.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetProperty withDataTypeSpec(String dataTypeSpec) {
+        setDataTypeSpec(dataTypeSpec);
+        return this;
+    }
+
     /**
      * <p>
      * The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.
@@ -381,6 +434,8 @@ public String toString() {
             sb.append("Notification: ").append(getNotification()).append(",");
         if (getDataType() != null)
             sb.append("DataType: ").append(getDataType()).append(",");
+        if (getDataTypeSpec() != null)
+            sb.append("DataTypeSpec: ").append(getDataTypeSpec()).append(",");
         if (getUnit() != null)
             sb.append("Unit: ").append(getUnit());
         sb.append("}");
@@ -417,6 +472,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getDataType() != null && other.getDataType().equals(this.getDataType()) == false)
             return false;
+        if (other.getDataTypeSpec() == null ^ this.getDataTypeSpec() == null)
+            return false;
+        if (other.getDataTypeSpec() != null && other.getDataTypeSpec().equals(this.getDataTypeSpec()) == false)
+            return false;
         if (other.getUnit() == null ^ this.getUnit() == null)
             return false;
         if (other.getUnit() != null && other.getUnit().equals(this.getUnit()) == false)
@@ -434,6 +493,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAlias() == null) ? 0 : getAlias().hashCode());
         hashCode = prime * hashCode + ((getNotification() == null) ? 0 : getNotification().hashCode());
         hashCode = prime * hashCode + ((getDataType() == null) ? 0 : getDataType().hashCode());
+        hashCode = prime * hashCode + ((getDataTypeSpec() == null) ? 0 : getDataTypeSpec().hashCode());
         hashCode = prime * hashCode + ((getUnit() == null) ? 0 : getUnit().hashCode());
         return hashCode;
     }
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipSummary.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipSummary.java
new file mode 100644
index 000000000000..cbb17bdec784
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipSummary.java
@@ -0,0 +1,294 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains information about assets that are related to one another.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/AssetRelationshipSummary"
+ *      target="_top">AWS API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetRelationshipSummary implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The assets that are related through an asset hierarchy.
+     * </p>
+     * <p>
+     * This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     * </p>
+     */
+    private AssetHierarchyInfo hierarchyInfo;
+    /**
+     * <p>
+     * The relationship type of the assets in this relationship. This value is one of the following:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship
+     * type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     * </p>
+     * </li>
+     * </ul>
+     */
+    private String relationshipType;
+
+    /**
+     * <p>
+     * The assets that are related through an asset hierarchy.
+     * </p>
+     * <p>
+     * This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     * </p>
+     * 
+     * @param hierarchyInfo
+     *        The assets that are related through an asset hierarchy.</p>
+     *        <p>
+     *        This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     */
+
+    public void setHierarchyInfo(AssetHierarchyInfo hierarchyInfo) {
+        this.hierarchyInfo = hierarchyInfo;
+    }
+
+    /**
+     * <p>
+     * The assets that are related through an asset hierarchy.
+     * </p>
+     * <p>
+     * This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     * </p>
+     * 
+     * @return The assets that are related through an asset hierarchy.</p>
+     *         <p>
+     *         This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     */
+
+    public AssetHierarchyInfo getHierarchyInfo() {
+        return this.hierarchyInfo;
+    }
+
+    /**
+     * <p>
+     * The assets that are related through an asset hierarchy.
+     * </p>
+     * <p>
+     * This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     * </p>
+     * 
+     * @param hierarchyInfo
+     *        The assets that are related through an asset hierarchy.</p>
+     *        <p>
+     *        This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public AssetRelationshipSummary withHierarchyInfo(AssetHierarchyInfo hierarchyInfo) {
+        setHierarchyInfo(hierarchyInfo);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The relationship type of the assets in this relationship. This value is one of the following:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship
+     * type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param relationshipType
+     *        The relationship type of the assets in this relationship. This value is one of the following:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this
+     *        relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     *        </p>
+     *        </li>
+     * @see AssetRelationshipType
+     */
+
+    public void setRelationshipType(String relationshipType) {
+        this.relationshipType = relationshipType;
+    }
+
+    /**
+     * <p>
+     * The relationship type of the assets in this relationship. This value is one of the following:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship
+     * type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @return The relationship type of the assets in this relationship. This value is one of the following:</p>
+     *         <ul>
+     *         <li>
+     *         <p>
+     *         <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this
+     *         relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     *         </p>
+     *         </li>
+     * @see AssetRelationshipType
+     */
+
+    public String getRelationshipType() {
+        return this.relationshipType;
+    }
+
+    /**
+     * <p>
+     * The relationship type of the assets in this relationship. This value is one of the following:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship
+     * type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param relationshipType
+     *        The relationship type of the assets in this relationship. This value is one of the following:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this
+     *        relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     *        </p>
+     *        </li>
+     * @return Returns a reference to this object so that method calls can be chained together.
+     * @see AssetRelationshipType
+     */
+
+    public AssetRelationshipSummary withRelationshipType(String relationshipType) {
+        setRelationshipType(relationshipType);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The relationship type of the assets in this relationship. This value is one of the following:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship
+     * type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param relationshipType
+     *        The relationship type of the assets in this relationship. This value is one of the following:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this
+     *        relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.
+     *        </p>
+     *        </li>
+     * @return Returns a reference to this object so that method calls can be chained together.
+     * @see AssetRelationshipType
+     */
+
+    public AssetRelationshipSummary withRelationshipType(AssetRelationshipType relationshipType) {
+        this.relationshipType = relationshipType.toString();
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getHierarchyInfo() != null)
+            sb.append("HierarchyInfo: ").append(getHierarchyInfo()).append(",");
+        if (getRelationshipType() != null)
+            sb.append("RelationshipType: ").append(getRelationshipType());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof AssetRelationshipSummary == false)
+            return false;
+        AssetRelationshipSummary other = (AssetRelationshipSummary) obj;
+        if (other.getHierarchyInfo() == null ^ this.getHierarchyInfo() == null)
+            return false;
+        if (other.getHierarchyInfo() != null && other.getHierarchyInfo().equals(this.getHierarchyInfo()) == false)
+            return false;
+        if (other.getRelationshipType() == null ^ this.getRelationshipType() == null)
+            return false;
+        if (other.getRelationshipType() != null && other.getRelationshipType().equals(this.getRelationshipType()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getHierarchyInfo() == null) ? 0 : getHierarchyInfo().hashCode());
+        hashCode = prime * hashCode + ((getRelationshipType() == null) ? 0 : getRelationshipType().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public AssetRelationshipSummary clone() {
+        try {
+            return (AssetRelationshipSummary) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.AssetRelationshipSummaryMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipType.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipType.java
new file mode 100644
index 000000000000..ed765df2a96e
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/AssetRelationshipType.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import javax.annotation.Generated;
+
+/**
+ * 
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public enum AssetRelationshipType {
+
+    HIERARCHY("HIERARCHY");
+
+    private String value;
+
+    private AssetRelationshipType(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return this.value;
+    }
+
+    /**
+     * Use this in place of valueOf.
+     *
+     * @param value
+     *        real value
+     * @return AssetRelationshipType corresponding to the value
+     *
+     * @throws IllegalArgumentException
+     *         If the specified value does not map to one of the known values in this enum.
+     */
+    public static AssetRelationshipType fromValue(String value) {
+        if (value == null || "".equals(value)) {
+            throw new IllegalArgumentException("Value cannot be null or empty!");
+        }
+
+        for (AssetRelationshipType enumEntry : AssetRelationshipType.values()) {
+            if (enumEntry.toString().equals(value)) {
+                return enumEntry;
+            }
+        }
+
+        throw new IllegalArgumentException("Cannot create enum from " + value + " value!");
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CompositeModelProperty.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CompositeModelProperty.java
new file mode 100644
index 000000000000..d21d0e483ca7
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CompositeModelProperty.java
@@ -0,0 +1,224 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+import com.amazonaws.protocol.StructuredPojo;
+import com.amazonaws.protocol.ProtocolMarshaller;
+
+/**
+ * <p>
+ * Contains information about a composite model property on an asset.
+ * </p>
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CompositeModelProperty" target="_top">AWS
+ *      API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class CompositeModelProperty implements Serializable, Cloneable, StructuredPojo {
+
+    /**
+     * <p>
+     * The name of the property.
+     * </p>
+     */
+    private String name;
+    /**
+     * <p>
+     * The type of the composite model that defines this property.
+     * </p>
+     */
+    private String type;
+
+    private Property assetProperty;
+
+    /**
+     * <p>
+     * The name of the property.
+     * </p>
+     * 
+     * @param name
+     *        The name of the property.
+     */
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * <p>
+     * The name of the property.
+     * </p>
+     * 
+     * @return The name of the property.
+     */
+
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * <p>
+     * The name of the property.
+     * </p>
+     * 
+     * @param name
+     *        The name of the property.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public CompositeModelProperty withName(String name) {
+        setName(name);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model that defines this property.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model that defines this property.
+     */
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model that defines this property.
+     * </p>
+     * 
+     * @return The type of the composite model that defines this property.
+     */
+
+    public String getType() {
+        return this.type;
+    }
+
+    /**
+     * <p>
+     * The type of the composite model that defines this property.
+     * </p>
+     * 
+     * @param type
+     *        The type of the composite model that defines this property.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public CompositeModelProperty withType(String type) {
+        setType(type);
+        return this;
+    }
+
+    /**
+     * @param assetProperty
+     */
+
+    public void setAssetProperty(Property assetProperty) {
+        this.assetProperty = assetProperty;
+    }
+
+    /**
+     * @return
+     */
+
+    public Property getAssetProperty() {
+        return this.assetProperty;
+    }
+
+    /**
+     * @param assetProperty
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public CompositeModelProperty withAssetProperty(Property assetProperty) {
+        setAssetProperty(assetProperty);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getName() != null)
+            sb.append("Name: ").append(getName()).append(",");
+        if (getType() != null)
+            sb.append("Type: ").append(getType()).append(",");
+        if (getAssetProperty() != null)
+            sb.append("AssetProperty: ").append(getAssetProperty());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof CompositeModelProperty == false)
+            return false;
+        CompositeModelProperty other = (CompositeModelProperty) obj;
+        if (other.getName() == null ^ this.getName() == null)
+            return false;
+        if (other.getName() != null && other.getName().equals(this.getName()) == false)
+            return false;
+        if (other.getType() == null ^ this.getType() == null)
+            return false;
+        if (other.getType() != null && other.getType().equals(this.getType()) == false)
+            return false;
+        if (other.getAssetProperty() == null ^ this.getAssetProperty() == null)
+            return false;
+        if (other.getAssetProperty() != null && other.getAssetProperty().equals(this.getAssetProperty()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
+        hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
+        hashCode = prime * hashCode + ((getAssetProperty() == null) ? 0 : getAssetProperty().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public CompositeModelProperty clone() {
+        try {
+            return (CompositeModelProperty) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+    @com.amazonaws.annotation.SdkInternalApi
+    @Override
+    public void marshall(ProtocolMarshaller protocolMarshaller) {
+        com.amazonaws.services.iotsitewise.model.transform.CompositeModelPropertyMarshaller.getInstance().marshall(this, protocolMarshaller);
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationErrorDetails.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationErrorDetails.java
index c32ba12246bb..6843c2e53f65 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationErrorDetails.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationErrorDetails.java
@@ -18,7 +18,9 @@
 import com.amazonaws.protocol.ProtocolMarshaller;
 
 /**
- * <p/>
+ * <p>
+ * Contains the details of an AWS IoT SiteWise configuration error.
+ * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ConfigurationErrorDetails"
  *      target="_top">AWS API Documentation</a>
@@ -26,15 +28,26 @@
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public class ConfigurationErrorDetails implements Serializable, Cloneable, StructuredPojo {
 
-    /** <p/> */
+    /**
+     * <p>
+     * The error code.
+     * </p>
+     */
     private String code;
-    /** <p/> */
+    /**
+     * <p>
+     * The error message.
+     * </p>
+     */
     private String message;
 
     /**
-     * <p/>
+     * <p>
+     * The error code.
+     * </p>
      * 
      * @param code
+     *        The error code.
      * @see ErrorCode
      */
 
@@ -43,9 +56,11 @@ public void setCode(String code) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error code.
+     * </p>
      * 
-     * @return
+     * @return The error code.
      * @see ErrorCode
      */
 
@@ -54,9 +69,12 @@ public String getCode() {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error code.
+     * </p>
      * 
      * @param code
+     *        The error code.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ErrorCode
      */
@@ -67,9 +85,12 @@ public ConfigurationErrorDetails withCode(String code) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error code.
+     * </p>
      * 
      * @param code
+     *        The error code.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ErrorCode
      */
@@ -80,9 +101,12 @@ public ConfigurationErrorDetails withCode(ErrorCode code) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error message.
+     * </p>
      * 
      * @param message
+     *        The error message.
      */
 
     public void setMessage(String message) {
@@ -90,9 +114,11 @@ public void setMessage(String message) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error message.
+     * </p>
      * 
-     * @return
+     * @return The error message.
      */
 
     public String getMessage() {
@@ -100,9 +126,12 @@ public String getMessage() {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The error message.
+     * </p>
      * 
      * @param message
+     *        The error message.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationStatus.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationStatus.java
index 8334de697409..23f5f37e144a 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationStatus.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ConfigurationStatus.java
@@ -18,7 +18,9 @@
 import com.amazonaws.protocol.ProtocolMarshaller;
 
 /**
- * <p/>
+ * <p>
+ * Contains current status information for the configuration.
+ * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ConfigurationStatus" target="_top">AWS
  *      API Documentation</a>
@@ -26,15 +28,26 @@
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public class ConfigurationStatus implements Serializable, Cloneable, StructuredPojo {
 
-    /** <p/> */
+    /**
+     * <p>
+     * The current state of the configuration.
+     * </p>
+     */
     private String state;
-    /** <p/> */
+    /**
+     * <p>
+     * Contains associated error information, if any.
+     * </p>
+     */
     private ConfigurationErrorDetails error;
 
     /**
-     * <p/>
+     * <p>
+     * The current state of the configuration.
+     * </p>
      * 
      * @param state
+     *        The current state of the configuration.
      * @see ConfigurationState
      */
 
@@ -43,9 +56,11 @@ public void setState(String state) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The current state of the configuration.
+     * </p>
      * 
-     * @return
+     * @return The current state of the configuration.
      * @see ConfigurationState
      */
 
@@ -54,9 +69,12 @@ public String getState() {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The current state of the configuration.
+     * </p>
      * 
      * @param state
+     *        The current state of the configuration.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ConfigurationState
      */
@@ -67,9 +85,12 @@ public ConfigurationStatus withState(String state) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * The current state of the configuration.
+     * </p>
      * 
      * @param state
+     *        The current state of the configuration.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ConfigurationState
      */
@@ -80,9 +101,12 @@ public ConfigurationStatus withState(ConfigurationState state) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * Contains associated error information, if any.
+     * </p>
      * 
      * @param error
+     *        Contains associated error information, if any.
      */
 
     public void setError(ConfigurationErrorDetails error) {
@@ -90,9 +114,11 @@ public void setError(ConfigurationErrorDetails error) {
     }
 
     /**
-     * <p/>
+     * <p>
+     * Contains associated error information, if any.
+     * </p>
      * 
-     * @return
+     * @return Contains associated error information, if any.
      */
 
     public ConfigurationErrorDetails getError() {
@@ -100,9 +126,12 @@ public ConfigurationErrorDetails getError() {
     }
 
     /**
-     * <p/>
+     * <p>
+     * Contains associated error information, if any.
+     * </p>
      * 
      * @param error
+     *        Contains associated error information, if any.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreateAssetModelRequest.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreateAssetModelRequest.java
index a2ed8815840e..332a226ac442 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreateAssetModelRequest.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreateAssetModelRequest.java
@@ -64,6 +64,14 @@ public class CreateAssetModelRequest extends com.amazonaws.AmazonWebServiceReque
      * </p>
      */
     private java.util.List<AssetModelHierarchyDefinition> assetModelHierarchies;
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     */
+    private java.util.List<AssetModelCompositeModelDefinition> assetModelCompositeModels;
     /**
      * <p>
      * A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse
@@ -412,6 +420,92 @@ public CreateAssetModelRequest withAssetModelHierarchies(java.util.Collection<As
         return this;
     }
 
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @return The composite asset models that are part of this asset model. Composite asset models are asset models
+     *         that contain specific properties. Each composite model has a type that defines the properties that the
+     *         composite model supports. Use composite asset models to define alarms on this asset model.
+     */
+
+    public java.util.List<AssetModelCompositeModelDefinition> getAssetModelCompositeModels() {
+        return assetModelCompositeModels;
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     */
+
+    public void setAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModelDefinition> assetModelCompositeModels) {
+        if (assetModelCompositeModels == null) {
+            this.assetModelCompositeModels = null;
+            return;
+        }
+
+        this.assetModelCompositeModels = new java.util.ArrayList<AssetModelCompositeModelDefinition>(assetModelCompositeModels);
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setAssetModelCompositeModels(java.util.Collection)} or
+     * {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public CreateAssetModelRequest withAssetModelCompositeModels(AssetModelCompositeModelDefinition... assetModelCompositeModels) {
+        if (this.assetModelCompositeModels == null) {
+            setAssetModelCompositeModels(new java.util.ArrayList<AssetModelCompositeModelDefinition>(assetModelCompositeModels.length));
+        }
+        for (AssetModelCompositeModelDefinition ele : assetModelCompositeModels) {
+            this.assetModelCompositeModels.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public CreateAssetModelRequest withAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModelDefinition> assetModelCompositeModels) {
+        setAssetModelCompositeModels(assetModelCompositeModels);
+        return this;
+    }
+
     /**
      * <p>
      * A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse
@@ -558,6 +652,8 @@ public String toString() {
             sb.append("AssetModelProperties: ").append(getAssetModelProperties()).append(",");
         if (getAssetModelHierarchies() != null)
             sb.append("AssetModelHierarchies: ").append(getAssetModelHierarchies()).append(",");
+        if (getAssetModelCompositeModels() != null)
+            sb.append("AssetModelCompositeModels: ").append(getAssetModelCompositeModels()).append(",");
         if (getClientToken() != null)
             sb.append("ClientToken: ").append(getClientToken()).append(",");
         if (getTags() != null)
@@ -592,6 +688,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getAssetModelHierarchies() != null && other.getAssetModelHierarchies().equals(this.getAssetModelHierarchies()) == false)
             return false;
+        if (other.getAssetModelCompositeModels() == null ^ this.getAssetModelCompositeModels() == null)
+            return false;
+        if (other.getAssetModelCompositeModels() != null && other.getAssetModelCompositeModels().equals(this.getAssetModelCompositeModels()) == false)
+            return false;
         if (other.getClientToken() == null ^ this.getClientToken() == null)
             return false;
         if (other.getClientToken() != null && other.getClientToken().equals(this.getClientToken()) == false)
@@ -612,6 +712,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAssetModelDescription() == null) ? 0 : getAssetModelDescription().hashCode());
         hashCode = prime * hashCode + ((getAssetModelProperties() == null) ? 0 : getAssetModelProperties().hashCode());
         hashCode = prime * hashCode + ((getAssetModelHierarchies() == null) ? 0 : getAssetModelHierarchies().hashCode());
+        hashCode = prime * hashCode + ((getAssetModelCompositeModels() == null) ? 0 : getAssetModelCompositeModels().hashCode());
         hashCode = prime * hashCode + ((getClientToken() == null) ? 0 : getClientToken().hashCode());
         hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
         return hashCode;
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalRequest.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalRequest.java
index c2f5c5b1bb9d..434a638cf1c0 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalRequest.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalRequest.java
@@ -92,8 +92,7 @@ public class CreatePortalRequest extends com.amazonaws.AmazonWebServiceRequest i
      * <li>
      * <p>
      * <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user
-     * permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to
-     * the portal. This option is only available in the China Regions.
+     * permissions. This option is only available in the China Regions.
      * </p>
      * </li>
      * </ul>
@@ -479,8 +478,7 @@ public CreatePortalRequest clearTagsEntries() {
      * <li>
      * <p>
      * <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user
-     * permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to
-     * the portal. This option is only available in the China Regions.
+     * permissions. This option is only available in the China Regions.
      * </p>
      * </li>
      * </ul>
@@ -507,8 +505,7 @@ public CreatePortalRequest clearTagsEntries() {
      *        <li>
      *        <p>
      *        <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and
-     *        manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *        permission to sign in to the portal. This option is only available in the China Regions.
+     *        manage user permissions. This option is only available in the China Regions.
      *        </p>
      *        </li>
      *        </ul>
@@ -541,8 +538,7 @@ public void setPortalAuthMode(String portalAuthMode) {
      * <li>
      * <p>
      * <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user
-     * permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to
-     * the portal. This option is only available in the China Regions.
+     * permissions. This option is only available in the China Regions.
      * </p>
      * </li>
      * </ul>
@@ -567,8 +563,7 @@ public void setPortalAuthMode(String portalAuthMode) {
      *         <li>
      *         <p>
      *         <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and
-     *         manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *         permission to sign in to the portal. This option is only available in the China Regions.
+     *         manage user permissions. This option is only available in the China Regions.
      *         </p>
      *         </li>
      *         </ul>
@@ -601,8 +596,7 @@ public String getPortalAuthMode() {
      * <li>
      * <p>
      * <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user
-     * permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to
-     * the portal. This option is only available in the China Regions.
+     * permissions. This option is only available in the China Regions.
      * </p>
      * </li>
      * </ul>
@@ -629,8 +623,7 @@ public String getPortalAuthMode() {
      *        <li>
      *        <p>
      *        <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and
-     *        manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *        permission to sign in to the portal. This option is only available in the China Regions.
+     *        manage user permissions. This option is only available in the China Regions.
      *        </p>
      *        </li>
      *        </ul>
@@ -665,8 +658,7 @@ public CreatePortalRequest withPortalAuthMode(String portalAuthMode) {
      * <li>
      * <p>
      * <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user
-     * permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to
-     * the portal. This option is only available in the China Regions.
+     * permissions. This option is only available in the China Regions.
      * </p>
      * </li>
      * </ul>
@@ -693,8 +685,7 @@ public CreatePortalRequest withPortalAuthMode(String portalAuthMode) {
      *        <li>
      *        <p>
      *        <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and
-     *        manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *        permission to sign in to the portal. This option is only available in the China Regions.
+     *        manage user permissions. This option is only available in the China Regions.
      *        </p>
      *        </li>
      *        </ul>
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalResult.java
index 15eb78753c5f..2d745cc7c170 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalResult.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePortalResult.java
@@ -42,9 +42,8 @@ public class CreatePortalResult extends com.amazonaws.AmazonWebServiceResult<com
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      */
     private String portalStartUrl;
@@ -166,16 +165,14 @@ public CreatePortalResult withPortalArn(String portalArn) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param portalStartUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      */
 
     public void setPortalStartUrl(String portalStartUrl) {
@@ -185,15 +182,13 @@ public void setPortalStartUrl(String portalStartUrl) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *         for authentication. For portals that use IAM for authentication, you must use the <a
-     *         href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *         >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *         for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise
+     *         console to get a URL that you can use to access the portal.
      */
 
     public String getPortalStartUrl() {
@@ -203,16 +198,14 @@ public String getPortalStartUrl() {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param portalStartUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlRequest.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlRequest.java
deleted file mode 100644
index 7c51ce336034..000000000000
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlRequest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
- * the License. A copy of the License is located at
- * 
- * http://aws.amazon.com/apache2.0
- * 
- * or in the "license" file accompanying this file. This file 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.
- */
-package com.amazonaws.services.iotsitewise.model;
-
-import java.io.Serializable;
-import javax.annotation.Generated;
-
-import com.amazonaws.AmazonWebServiceRequest;
-
-/**
- * 
- * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
- *      target="_top">AWS API Documentation</a>
- */
-@Generated("com.amazonaws:aws-java-sdk-code-generator")
-public class CreatePresignedPortalUrlRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
-
-    /**
-     * <p>
-     * The ID of the portal to access.
-     * </p>
-     */
-    private String portalId;
-    /**
-     * <p>
-     * The duration (in seconds) for which the session at the URL is valid.
-     * </p>
-     * <p>
-     * Default: 43,200 seconds (12 hours)
-     * </p>
-     */
-    private Integer sessionDurationSeconds;
-
-    /**
-     * <p>
-     * The ID of the portal to access.
-     * </p>
-     * 
-     * @param portalId
-     *        The ID of the portal to access.
-     */
-
-    public void setPortalId(String portalId) {
-        this.portalId = portalId;
-    }
-
-    /**
-     * <p>
-     * The ID of the portal to access.
-     * </p>
-     * 
-     * @return The ID of the portal to access.
-     */
-
-    public String getPortalId() {
-        return this.portalId;
-    }
-
-    /**
-     * <p>
-     * The ID of the portal to access.
-     * </p>
-     * 
-     * @param portalId
-     *        The ID of the portal to access.
-     * @return Returns a reference to this object so that method calls can be chained together.
-     */
-
-    public CreatePresignedPortalUrlRequest withPortalId(String portalId) {
-        setPortalId(portalId);
-        return this;
-    }
-
-    /**
-     * <p>
-     * The duration (in seconds) for which the session at the URL is valid.
-     * </p>
-     * <p>
-     * Default: 43,200 seconds (12 hours)
-     * </p>
-     * 
-     * @param sessionDurationSeconds
-     *        The duration (in seconds) for which the session at the URL is valid.</p>
-     *        <p>
-     *        Default: 43,200 seconds (12 hours)
-     */
-
-    public void setSessionDurationSeconds(Integer sessionDurationSeconds) {
-        this.sessionDurationSeconds = sessionDurationSeconds;
-    }
-
-    /**
-     * <p>
-     * The duration (in seconds) for which the session at the URL is valid.
-     * </p>
-     * <p>
-     * Default: 43,200 seconds (12 hours)
-     * </p>
-     * 
-     * @return The duration (in seconds) for which the session at the URL is valid.</p>
-     *         <p>
-     *         Default: 43,200 seconds (12 hours)
-     */
-
-    public Integer getSessionDurationSeconds() {
-        return this.sessionDurationSeconds;
-    }
-
-    /**
-     * <p>
-     * The duration (in seconds) for which the session at the URL is valid.
-     * </p>
-     * <p>
-     * Default: 43,200 seconds (12 hours)
-     * </p>
-     * 
-     * @param sessionDurationSeconds
-     *        The duration (in seconds) for which the session at the URL is valid.</p>
-     *        <p>
-     *        Default: 43,200 seconds (12 hours)
-     * @return Returns a reference to this object so that method calls can be chained together.
-     */
-
-    public CreatePresignedPortalUrlRequest withSessionDurationSeconds(Integer sessionDurationSeconds) {
-        setSessionDurationSeconds(sessionDurationSeconds);
-        return this;
-    }
-
-    /**
-     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
-     * redacted from this string using a placeholder value.
-     *
-     * @return A string representation of this object.
-     *
-     * @see java.lang.Object#toString()
-     */
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("{");
-        if (getPortalId() != null)
-            sb.append("PortalId: ").append(getPortalId()).append(",");
-        if (getSessionDurationSeconds() != null)
-            sb.append("SessionDurationSeconds: ").append(getSessionDurationSeconds());
-        sb.append("}");
-        return sb.toString();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof CreatePresignedPortalUrlRequest == false)
-            return false;
-        CreatePresignedPortalUrlRequest other = (CreatePresignedPortalUrlRequest) obj;
-        if (other.getPortalId() == null ^ this.getPortalId() == null)
-            return false;
-        if (other.getPortalId() != null && other.getPortalId().equals(this.getPortalId()) == false)
-            return false;
-        if (other.getSessionDurationSeconds() == null ^ this.getSessionDurationSeconds() == null)
-            return false;
-        if (other.getSessionDurationSeconds() != null && other.getSessionDurationSeconds().equals(this.getSessionDurationSeconds()) == false)
-            return false;
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int hashCode = 1;
-
-        hashCode = prime * hashCode + ((getPortalId() == null) ? 0 : getPortalId().hashCode());
-        hashCode = prime * hashCode + ((getSessionDurationSeconds() == null) ? 0 : getSessionDurationSeconds().hashCode());
-        return hashCode;
-    }
-
-    @Override
-    public CreatePresignedPortalUrlRequest clone() {
-        return (CreatePresignedPortalUrlRequest) super.clone();
-    }
-
-}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlResult.java
deleted file mode 100644
index c72e7294d57b..000000000000
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/CreatePresignedPortalUrlResult.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
- * the License. A copy of the License is located at
- * 
- * http://aws.amazon.com/apache2.0
- * 
- * or in the "license" file accompanying this file. This file 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.
- */
-package com.amazonaws.services.iotsitewise.model;
-
-import java.io.Serializable;
-import javax.annotation.Generated;
-
-/**
- * 
- * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/CreatePresignedPortalUrl"
- *      target="_top">AWS API Documentation</a>
- */
-@Generated("com.amazonaws:aws-java-sdk-code-generator")
-public class CreatePresignedPortalUrlResult extends com.amazonaws.AmazonWebServiceResult<com.amazonaws.ResponseMetadata> implements Serializable, Cloneable {
-
-    /**
-     * <p>
-     * The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access
-     * the portal. The URL has the following format.
-     * </p>
-     * <p>
-     * <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     * </p>
-     */
-    private String presignedPortalUrl;
-
-    /**
-     * <p>
-     * The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access
-     * the portal. The URL has the following format.
-     * </p>
-     * <p>
-     * <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     * </p>
-     * 
-     * @param presignedPortalUrl
-     *        The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you
-     *        access the portal. The URL has the following format.</p>
-     *        <p>
-     *        <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     */
-
-    public void setPresignedPortalUrl(String presignedPortalUrl) {
-        this.presignedPortalUrl = presignedPortalUrl;
-    }
-
-    /**
-     * <p>
-     * The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access
-     * the portal. The URL has the following format.
-     * </p>
-     * <p>
-     * <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     * </p>
-     * 
-     * @return The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets
-     *         you access the portal. The URL has the following format.</p>
-     *         <p>
-     *         <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     */
-
-    public String getPresignedPortalUrl() {
-        return this.presignedPortalUrl;
-    }
-
-    /**
-     * <p>
-     * The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access
-     * the portal. The URL has the following format.
-     * </p>
-     * <p>
-     * <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     * </p>
-     * 
-     * @param presignedPortalUrl
-     *        The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you
-     *        access the portal. The URL has the following format.</p>
-     *        <p>
-     *        <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>
-     * @return Returns a reference to this object so that method calls can be chained together.
-     */
-
-    public CreatePresignedPortalUrlResult withPresignedPortalUrl(String presignedPortalUrl) {
-        setPresignedPortalUrl(presignedPortalUrl);
-        return this;
-    }
-
-    /**
-     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
-     * redacted from this string using a placeholder value.
-     *
-     * @return A string representation of this object.
-     *
-     * @see java.lang.Object#toString()
-     */
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("{");
-        if (getPresignedPortalUrl() != null)
-            sb.append("PresignedPortalUrl: ").append(getPresignedPortalUrl());
-        sb.append("}");
-        return sb.toString();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-
-        if (obj instanceof CreatePresignedPortalUrlResult == false)
-            return false;
-        CreatePresignedPortalUrlResult other = (CreatePresignedPortalUrlResult) obj;
-        if (other.getPresignedPortalUrl() == null ^ this.getPresignedPortalUrl() == null)
-            return false;
-        if (other.getPresignedPortalUrl() != null && other.getPresignedPortalUrl().equals(this.getPresignedPortalUrl()) == false)
-            return false;
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int hashCode = 1;
-
-        hashCode = prime * hashCode + ((getPresignedPortalUrl() == null) ? 0 : getPresignedPortalUrl().hashCode());
-        return hashCode;
-    }
-
-    @Override
-    public CreatePresignedPortalUrlResult clone() {
-        try {
-            return (CreatePresignedPortalUrlResult) super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
-        }
-    }
-
-}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetModelResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetModelResult.java
index c2a1b03d4f8c..a7a2e2ec4207 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetModelResult.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetModelResult.java
@@ -55,6 +55,10 @@ public class DescribeAssetModelResult extends com.amazonaws.AmazonWebServiceResu
      * <p>
      * The list of asset properties for the asset model.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetModelCompositeModels</code> object.
+     * </p>
      */
     private java.util.List<AssetModelProperty> assetModelProperties;
     /**
@@ -65,6 +69,12 @@ public class DescribeAssetModelResult extends com.amazonaws.AmazonWebServiceResu
      * </p>
      */
     private java.util.List<AssetModelHierarchy> assetModelHierarchies;
+    /**
+     * <p>
+     * The list of composite asset models for the asset model.
+     * </p>
+     */
+    private java.util.List<AssetModelCompositeModel> assetModelCompositeModels;
     /**
      * <p>
      * The date the asset model was created, in Unix epoch time.
@@ -269,8 +279,15 @@ public DescribeAssetModelResult withAssetModelDescription(String assetModelDescr
      * <p>
      * The list of asset properties for the asset model.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetModelCompositeModels</code> object.
+     * </p>
      * 
-     * @return The list of asset properties for the asset model.
+     * @return The list of asset properties for the asset model.</p>
+     *         <p>
+     *         This object doesn't include properties that you define in composite models. You can find composite model
+     *         properties in the <code>assetModelCompositeModels</code> object.
      */
 
     public java.util.List<AssetModelProperty> getAssetModelProperties() {
@@ -281,9 +298,16 @@ public java.util.List<AssetModelProperty> getAssetModelProperties() {
      * <p>
      * The list of asset properties for the asset model.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetModelCompositeModels</code> object.
+     * </p>
      * 
      * @param assetModelProperties
-     *        The list of asset properties for the asset model.
+     *        The list of asset properties for the asset model.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetModelCompositeModels</code> object.
      */
 
     public void setAssetModelProperties(java.util.Collection<AssetModelProperty> assetModelProperties) {
@@ -300,13 +324,20 @@ public void setAssetModelProperties(java.util.Collection<AssetModelProperty> ass
      * The list of asset properties for the asset model.
      * </p>
      * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetModelCompositeModels</code> object.
+     * </p>
+     * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)}
      * if you want to override the existing values.
      * </p>
      * 
      * @param assetModelProperties
-     *        The list of asset properties for the asset model.
+     *        The list of asset properties for the asset model.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetModelCompositeModels</code> object.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -324,9 +355,16 @@ public DescribeAssetModelResult withAssetModelProperties(AssetModelProperty... a
      * <p>
      * The list of asset properties for the asset model.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetModelCompositeModels</code> object.
+     * </p>
      * 
      * @param assetModelProperties
-     *        The list of asset properties for the asset model.
+     *        The list of asset properties for the asset model.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetModelCompositeModels</code> object.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -421,6 +459,76 @@ public DescribeAssetModelResult withAssetModelHierarchies(java.util.Collection<A
         return this;
     }
 
+    /**
+     * <p>
+     * The list of composite asset models for the asset model.
+     * </p>
+     * 
+     * @return The list of composite asset models for the asset model.
+     */
+
+    public java.util.List<AssetModelCompositeModel> getAssetModelCompositeModels() {
+        return assetModelCompositeModels;
+    }
+
+    /**
+     * <p>
+     * The list of composite asset models for the asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The list of composite asset models for the asset model.
+     */
+
+    public void setAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModel> assetModelCompositeModels) {
+        if (assetModelCompositeModels == null) {
+            this.assetModelCompositeModels = null;
+            return;
+        }
+
+        this.assetModelCompositeModels = new java.util.ArrayList<AssetModelCompositeModel>(assetModelCompositeModels);
+    }
+
+    /**
+     * <p>
+     * The list of composite asset models for the asset model.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setAssetModelCompositeModels(java.util.Collection)} or
+     * {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The list of composite asset models for the asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public DescribeAssetModelResult withAssetModelCompositeModels(AssetModelCompositeModel... assetModelCompositeModels) {
+        if (this.assetModelCompositeModels == null) {
+            setAssetModelCompositeModels(new java.util.ArrayList<AssetModelCompositeModel>(assetModelCompositeModels.length));
+        }
+        for (AssetModelCompositeModel ele : assetModelCompositeModels) {
+            this.assetModelCompositeModels.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The list of composite asset models for the asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The list of composite asset models for the asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public DescribeAssetModelResult withAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModel> assetModelCompositeModels) {
+        setAssetModelCompositeModels(assetModelCompositeModels);
+        return this;
+    }
+
     /**
      * <p>
      * The date the asset model was created, in Unix epoch time.
@@ -565,6 +673,8 @@ public String toString() {
             sb.append("AssetModelProperties: ").append(getAssetModelProperties()).append(",");
         if (getAssetModelHierarchies() != null)
             sb.append("AssetModelHierarchies: ").append(getAssetModelHierarchies()).append(",");
+        if (getAssetModelCompositeModels() != null)
+            sb.append("AssetModelCompositeModels: ").append(getAssetModelCompositeModels()).append(",");
         if (getAssetModelCreationDate() != null)
             sb.append("AssetModelCreationDate: ").append(getAssetModelCreationDate()).append(",");
         if (getAssetModelLastUpdateDate() != null)
@@ -609,6 +719,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getAssetModelHierarchies() != null && other.getAssetModelHierarchies().equals(this.getAssetModelHierarchies()) == false)
             return false;
+        if (other.getAssetModelCompositeModels() == null ^ this.getAssetModelCompositeModels() == null)
+            return false;
+        if (other.getAssetModelCompositeModels() != null && other.getAssetModelCompositeModels().equals(this.getAssetModelCompositeModels()) == false)
+            return false;
         if (other.getAssetModelCreationDate() == null ^ this.getAssetModelCreationDate() == null)
             return false;
         if (other.getAssetModelCreationDate() != null && other.getAssetModelCreationDate().equals(this.getAssetModelCreationDate()) == false)
@@ -635,6 +749,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAssetModelDescription() == null) ? 0 : getAssetModelDescription().hashCode());
         hashCode = prime * hashCode + ((getAssetModelProperties() == null) ? 0 : getAssetModelProperties().hashCode());
         hashCode = prime * hashCode + ((getAssetModelHierarchies() == null) ? 0 : getAssetModelHierarchies().hashCode());
+        hashCode = prime * hashCode + ((getAssetModelCompositeModels() == null) ? 0 : getAssetModelCompositeModels().hashCode());
         hashCode = prime * hashCode + ((getAssetModelCreationDate() == null) ? 0 : getAssetModelCreationDate().hashCode());
         hashCode = prime * hashCode + ((getAssetModelLastUpdateDate() == null) ? 0 : getAssetModelLastUpdateDate().hashCode());
         hashCode = prime * hashCode + ((getAssetModelStatus() == null) ? 0 : getAssetModelStatus().hashCode());
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetPropertyResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetPropertyResult.java
index 563ebbf53d82..0fcb1684a374 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetPropertyResult.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetPropertyResult.java
@@ -45,8 +45,18 @@ public class DescribeAssetPropertyResult extends com.amazonaws.AmazonWebServiceR
      * <p>
      * The asset property's definition, alias, and notification state.
      * </p>
+     * <p>
+     * This response includes this object for normal asset properties. If you describe an asset property in a composite
+     * model, this response includes the asset property information in <code>compositeModel</code>.
+     * </p>
      */
     private Property assetProperty;
+    /**
+     * <p>
+     * The composite asset model that declares this asset property, if this asset property exists in a composite model.
+     * </p>
+     */
+    private CompositeModelProperty compositeModel;
 
     /**
      * <p>
@@ -172,9 +182,16 @@ public DescribeAssetPropertyResult withAssetModelId(String assetModelId) {
      * <p>
      * The asset property's definition, alias, and notification state.
      * </p>
+     * <p>
+     * This response includes this object for normal asset properties. If you describe an asset property in a composite
+     * model, this response includes the asset property information in <code>compositeModel</code>.
+     * </p>
      * 
      * @param assetProperty
-     *        The asset property's definition, alias, and notification state.
+     *        The asset property's definition, alias, and notification state.</p>
+     *        <p>
+     *        This response includes this object for normal asset properties. If you describe an asset property in a
+     *        composite model, this response includes the asset property information in <code>compositeModel</code>.
      */
 
     public void setAssetProperty(Property assetProperty) {
@@ -185,8 +202,15 @@ public void setAssetProperty(Property assetProperty) {
      * <p>
      * The asset property's definition, alias, and notification state.
      * </p>
+     * <p>
+     * This response includes this object for normal asset properties. If you describe an asset property in a composite
+     * model, this response includes the asset property information in <code>compositeModel</code>.
+     * </p>
      * 
-     * @return The asset property's definition, alias, and notification state.
+     * @return The asset property's definition, alias, and notification state.</p>
+     *         <p>
+     *         This response includes this object for normal asset properties. If you describe an asset property in a
+     *         composite model, this response includes the asset property information in <code>compositeModel</code>.
      */
 
     public Property getAssetProperty() {
@@ -197,9 +221,16 @@ public Property getAssetProperty() {
      * <p>
      * The asset property's definition, alias, and notification state.
      * </p>
+     * <p>
+     * This response includes this object for normal asset properties. If you describe an asset property in a composite
+     * model, this response includes the asset property information in <code>compositeModel</code>.
+     * </p>
      * 
      * @param assetProperty
-     *        The asset property's definition, alias, and notification state.
+     *        The asset property's definition, alias, and notification state.</p>
+     *        <p>
+     *        This response includes this object for normal asset properties. If you describe an asset property in a
+     *        composite model, this response includes the asset property information in <code>compositeModel</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -208,6 +239,49 @@ public DescribeAssetPropertyResult withAssetProperty(Property assetProperty) {
         return this;
     }
 
+    /**
+     * <p>
+     * The composite asset model that declares this asset property, if this asset property exists in a composite model.
+     * </p>
+     * 
+     * @param compositeModel
+     *        The composite asset model that declares this asset property, if this asset property exists in a composite
+     *        model.
+     */
+
+    public void setCompositeModel(CompositeModelProperty compositeModel) {
+        this.compositeModel = compositeModel;
+    }
+
+    /**
+     * <p>
+     * The composite asset model that declares this asset property, if this asset property exists in a composite model.
+     * </p>
+     * 
+     * @return The composite asset model that declares this asset property, if this asset property exists in a composite
+     *         model.
+     */
+
+    public CompositeModelProperty getCompositeModel() {
+        return this.compositeModel;
+    }
+
+    /**
+     * <p>
+     * The composite asset model that declares this asset property, if this asset property exists in a composite model.
+     * </p>
+     * 
+     * @param compositeModel
+     *        The composite asset model that declares this asset property, if this asset property exists in a composite
+     *        model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public DescribeAssetPropertyResult withCompositeModel(CompositeModelProperty compositeModel) {
+        setCompositeModel(compositeModel);
+        return this;
+    }
+
     /**
      * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
      * redacted from this string using a placeholder value.
@@ -227,7 +301,9 @@ public String toString() {
         if (getAssetModelId() != null)
             sb.append("AssetModelId: ").append(getAssetModelId()).append(",");
         if (getAssetProperty() != null)
-            sb.append("AssetProperty: ").append(getAssetProperty());
+            sb.append("AssetProperty: ").append(getAssetProperty()).append(",");
+        if (getCompositeModel() != null)
+            sb.append("CompositeModel: ").append(getCompositeModel());
         sb.append("}");
         return sb.toString();
     }
@@ -258,6 +334,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getAssetProperty() != null && other.getAssetProperty().equals(this.getAssetProperty()) == false)
             return false;
+        if (other.getCompositeModel() == null ^ this.getCompositeModel() == null)
+            return false;
+        if (other.getCompositeModel() != null && other.getCompositeModel().equals(this.getCompositeModel()) == false)
+            return false;
         return true;
     }
 
@@ -270,6 +350,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAssetName() == null) ? 0 : getAssetName().hashCode());
         hashCode = prime * hashCode + ((getAssetModelId() == null) ? 0 : getAssetModelId().hashCode());
         hashCode = prime * hashCode + ((getAssetProperty() == null) ? 0 : getAssetProperty().hashCode());
+        hashCode = prime * hashCode + ((getCompositeModel() == null) ? 0 : getCompositeModel().hashCode());
         return hashCode;
     }
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetResult.java
index 971b7bc64866..c383fbea052d 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetResult.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribeAssetResult.java
@@ -55,6 +55,10 @@ public class DescribeAssetResult extends com.amazonaws.AmazonWebServiceResult<co
      * <p>
      * The list of asset properties for the asset.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetCompositeModels</code> object.
+     * </p>
      */
     private java.util.List<AssetProperty> assetProperties;
     /**
@@ -64,6 +68,12 @@ public class DescribeAssetResult extends com.amazonaws.AmazonWebServiceResult<co
      * </p>
      */
     private java.util.List<AssetHierarchy> assetHierarchies;
+    /**
+     * <p>
+     * The composite models for the asset.
+     * </p>
+     */
+    private java.util.List<AssetCompositeModel> assetCompositeModels;
     /**
      * <p>
      * The date the asset was created, in Unix epoch time.
@@ -268,8 +278,15 @@ public DescribeAssetResult withAssetModelId(String assetModelId) {
      * <p>
      * The list of asset properties for the asset.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetCompositeModels</code> object.
+     * </p>
      * 
-     * @return The list of asset properties for the asset.
+     * @return The list of asset properties for the asset.</p>
+     *         <p>
+     *         This object doesn't include properties that you define in composite models. You can find composite model
+     *         properties in the <code>assetCompositeModels</code> object.
      */
 
     public java.util.List<AssetProperty> getAssetProperties() {
@@ -280,9 +297,16 @@ public java.util.List<AssetProperty> getAssetProperties() {
      * <p>
      * The list of asset properties for the asset.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetCompositeModels</code> object.
+     * </p>
      * 
      * @param assetProperties
-     *        The list of asset properties for the asset.
+     *        The list of asset properties for the asset.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetCompositeModels</code> object.
      */
 
     public void setAssetProperties(java.util.Collection<AssetProperty> assetProperties) {
@@ -299,13 +323,20 @@ public void setAssetProperties(java.util.Collection<AssetProperty> assetProperti
      * The list of asset properties for the asset.
      * </p>
      * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetCompositeModels</code> object.
+     * </p>
+     * <p>
      * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
      * {@link #setAssetProperties(java.util.Collection)} or {@link #withAssetProperties(java.util.Collection)} if you
      * want to override the existing values.
      * </p>
      * 
      * @param assetProperties
-     *        The list of asset properties for the asset.
+     *        The list of asset properties for the asset.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetCompositeModels</code> object.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -323,9 +354,16 @@ public DescribeAssetResult withAssetProperties(AssetProperty... assetProperties)
      * <p>
      * The list of asset properties for the asset.
      * </p>
+     * <p>
+     * This object doesn't include properties that you define in composite models. You can find composite model
+     * properties in the <code>assetCompositeModels</code> object.
+     * </p>
      * 
      * @param assetProperties
-     *        The list of asset properties for the asset.
+     *        The list of asset properties for the asset.</p>
+     *        <p>
+     *        This object doesn't include properties that you define in composite models. You can find composite model
+     *        properties in the <code>assetCompositeModels</code> object.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -412,6 +450,76 @@ public DescribeAssetResult withAssetHierarchies(java.util.Collection<AssetHierar
         return this;
     }
 
+    /**
+     * <p>
+     * The composite models for the asset.
+     * </p>
+     * 
+     * @return The composite models for the asset.
+     */
+
+    public java.util.List<AssetCompositeModel> getAssetCompositeModels() {
+        return assetCompositeModels;
+    }
+
+    /**
+     * <p>
+     * The composite models for the asset.
+     * </p>
+     * 
+     * @param assetCompositeModels
+     *        The composite models for the asset.
+     */
+
+    public void setAssetCompositeModels(java.util.Collection<AssetCompositeModel> assetCompositeModels) {
+        if (assetCompositeModels == null) {
+            this.assetCompositeModels = null;
+            return;
+        }
+
+        this.assetCompositeModels = new java.util.ArrayList<AssetCompositeModel>(assetCompositeModels);
+    }
+
+    /**
+     * <p>
+     * The composite models for the asset.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setAssetCompositeModels(java.util.Collection)} or {@link #withAssetCompositeModels(java.util.Collection)}
+     * if you want to override the existing values.
+     * </p>
+     * 
+     * @param assetCompositeModels
+     *        The composite models for the asset.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public DescribeAssetResult withAssetCompositeModels(AssetCompositeModel... assetCompositeModels) {
+        if (this.assetCompositeModels == null) {
+            setAssetCompositeModels(new java.util.ArrayList<AssetCompositeModel>(assetCompositeModels.length));
+        }
+        for (AssetCompositeModel ele : assetCompositeModels) {
+            this.assetCompositeModels.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The composite models for the asset.
+     * </p>
+     * 
+     * @param assetCompositeModels
+     *        The composite models for the asset.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public DescribeAssetResult withAssetCompositeModels(java.util.Collection<AssetCompositeModel> assetCompositeModels) {
+        setAssetCompositeModels(assetCompositeModels);
+        return this;
+    }
+
     /**
      * <p>
      * The date the asset was created, in Unix epoch time.
@@ -556,6 +664,8 @@ public String toString() {
             sb.append("AssetProperties: ").append(getAssetProperties()).append(",");
         if (getAssetHierarchies() != null)
             sb.append("AssetHierarchies: ").append(getAssetHierarchies()).append(",");
+        if (getAssetCompositeModels() != null)
+            sb.append("AssetCompositeModels: ").append(getAssetCompositeModels()).append(",");
         if (getAssetCreationDate() != null)
             sb.append("AssetCreationDate: ").append(getAssetCreationDate()).append(",");
         if (getAssetLastUpdateDate() != null)
@@ -600,6 +710,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getAssetHierarchies() != null && other.getAssetHierarchies().equals(this.getAssetHierarchies()) == false)
             return false;
+        if (other.getAssetCompositeModels() == null ^ this.getAssetCompositeModels() == null)
+            return false;
+        if (other.getAssetCompositeModels() != null && other.getAssetCompositeModels().equals(this.getAssetCompositeModels()) == false)
+            return false;
         if (other.getAssetCreationDate() == null ^ this.getAssetCreationDate() == null)
             return false;
         if (other.getAssetCreationDate() != null && other.getAssetCreationDate().equals(this.getAssetCreationDate()) == false)
@@ -626,6 +740,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAssetModelId() == null) ? 0 : getAssetModelId().hashCode());
         hashCode = prime * hashCode + ((getAssetProperties() == null) ? 0 : getAssetProperties().hashCode());
         hashCode = prime * hashCode + ((getAssetHierarchies() == null) ? 0 : getAssetHierarchies().hashCode());
+        hashCode = prime * hashCode + ((getAssetCompositeModels() == null) ? 0 : getAssetCompositeModels().hashCode());
         hashCode = prime * hashCode + ((getAssetCreationDate() == null) ? 0 : getAssetCreationDate().hashCode());
         hashCode = prime * hashCode + ((getAssetLastUpdateDate() == null) ? 0 : getAssetLastUpdateDate().hashCode());
         hashCode = prime * hashCode + ((getAssetStatus() == null) ? 0 : getAssetStatus().hashCode());
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribePortalResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribePortalResult.java
index 3f54d0b3d593..4e47aba3e272 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribePortalResult.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/DescribePortalResult.java
@@ -61,9 +61,8 @@ public class DescribePortalResult extends com.amazonaws.AmazonWebServiceResult<c
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      */
     private String portalStartUrl;
@@ -344,16 +343,14 @@ public DescribePortalResult withPortalClientId(String portalClientId) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param portalStartUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      */
 
     public void setPortalStartUrl(String portalStartUrl) {
@@ -363,15 +360,13 @@ public void setPortalStartUrl(String portalStartUrl) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *         for authentication. For portals that use IAM for authentication, you must use the <a
-     *         href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *         >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *         for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise
+     *         console to get a URL that you can use to access the portal.
      */
 
     public String getPortalStartUrl() {
@@ -381,16 +376,14 @@ public String getPortalStartUrl() {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param portalStartUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/IAMUserIdentity.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/IAMUserIdentity.java
index f7bb0b555347..159a6384fb5b 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/IAMUserIdentity.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/IAMUserIdentity.java
@@ -30,8 +30,7 @@ public class IAMUserIdentity implements Serializable, Cloneable, StructuredPojo
 
     /**
      * <p>
-     * The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to
-     * sign in to the portal. For more information, see <a
+     * The ARN of the IAM user. For more information, see <a
      * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM
      * User Guide</i>.
      * </p>
@@ -46,8 +45,7 @@ public class IAMUserIdentity implements Serializable, Cloneable, StructuredPojo
 
     /**
      * <p>
-     * The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to
-     * sign in to the portal. For more information, see <a
+     * The ARN of the IAM user. For more information, see <a
      * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM
      * User Guide</i>.
      * </p>
@@ -59,8 +57,7 @@ public class IAMUserIdentity implements Serializable, Cloneable, StructuredPojo
      * </note>
      * 
      * @param arn
-     *        The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *        permission to sign in to the portal. For more information, see <a
+     *        The ARN of the IAM user. For more information, see <a
      *        href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the
      *        <i>IAM User Guide</i>.</p> <note>
      *        <p>
@@ -75,8 +72,7 @@ public void setArn(String arn) {
 
     /**
      * <p>
-     * The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to
-     * sign in to the portal. For more information, see <a
+     * The ARN of the IAM user. For more information, see <a
      * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM
      * User Guide</i>.
      * </p>
@@ -87,8 +83,7 @@ public void setArn(String arn) {
      * </p>
      * </note>
      * 
-     * @return The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *         permission to sign in to the portal. For more information, see <a
+     * @return The ARN of the IAM user. For more information, see <a
      *         href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the
      *         <i>IAM User Guide</i>.</p> <note>
      *         <p>
@@ -103,8 +98,7 @@ public String getArn() {
 
     /**
      * <p>
-     * The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to
-     * sign in to the portal. For more information, see <a
+     * The ARN of the IAM user. For more information, see <a
      * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the <i>IAM
      * User Guide</i>.
      * </p>
@@ -116,8 +110,7 @@ public String getArn() {
      * </note>
      * 
      * @param arn
-     *        The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code>
-     *        permission to sign in to the portal. For more information, see <a
+     *        The ARN of the IAM user. For more information, see <a
      *        href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html">IAM ARNs</a> in the
      *        <i>IAM User Guide</i>.</p> <note>
      *        <p>
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsRequest.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsRequest.java
new file mode 100644
index 000000000000..a746869120fe
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsRequest.java
@@ -0,0 +1,379 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+
+import com.amazonaws.AmazonWebServiceRequest;
+
+/**
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships" target="_top">AWS
+ *      API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class ListAssetRelationshipsRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
+
+    /**
+     * <p>
+     * The ID of the asset.
+     * </p>
+     */
+    private String assetId;
+    /**
+     * <p>
+     * The type of traversal to use to identify asset relationships. Choose the following option:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify
+     * in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root
+     * asset is the last result.
+     * </p>
+     * </li>
+     * </ul>
+     */
+    private String traversalType;
+    /**
+     * <p>
+     * The token to be used for the next set of paginated results.
+     * </p>
+     */
+    private String nextToken;
+    /**
+     * <p>
+     * The maximum number of results to be returned per paginated request.
+     * </p>
+     */
+    private Integer maxResults;
+
+    /**
+     * <p>
+     * The ID of the asset.
+     * </p>
+     * 
+     * @param assetId
+     *        The ID of the asset.
+     */
+
+    public void setAssetId(String assetId) {
+        this.assetId = assetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the asset.
+     * </p>
+     * 
+     * @return The ID of the asset.
+     */
+
+    public String getAssetId() {
+        return this.assetId;
+    }
+
+    /**
+     * <p>
+     * The ID of the asset.
+     * </p>
+     * 
+     * @param assetId
+     *        The ID of the asset.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsRequest withAssetId(String assetId) {
+        setAssetId(assetId);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of traversal to use to identify asset relationships. Choose the following option:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify
+     * in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root
+     * asset is the last result.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param traversalType
+     *        The type of traversal to use to identify asset relationships. Choose the following option:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you
+     *        specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>
+     *        , and the root asset is the last result.
+     *        </p>
+     *        </li>
+     * @see TraversalType
+     */
+
+    public void setTraversalType(String traversalType) {
+        this.traversalType = traversalType;
+    }
+
+    /**
+     * <p>
+     * The type of traversal to use to identify asset relationships. Choose the following option:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify
+     * in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root
+     * asset is the last result.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @return The type of traversal to use to identify asset relationships. Choose the following option:</p>
+     *         <ul>
+     *         <li>
+     *         <p>
+     *         <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you
+     *         specify in <code>assetId</code> is the first result in the list of
+     *         <code>assetRelationshipSummaries</code>, and the root asset is the last result.
+     *         </p>
+     *         </li>
+     * @see TraversalType
+     */
+
+    public String getTraversalType() {
+        return this.traversalType;
+    }
+
+    /**
+     * <p>
+     * The type of traversal to use to identify asset relationships. Choose the following option:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify
+     * in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root
+     * asset is the last result.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param traversalType
+     *        The type of traversal to use to identify asset relationships. Choose the following option:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you
+     *        specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>
+     *        , and the root asset is the last result.
+     *        </p>
+     *        </li>
+     * @return Returns a reference to this object so that method calls can be chained together.
+     * @see TraversalType
+     */
+
+    public ListAssetRelationshipsRequest withTraversalType(String traversalType) {
+        setTraversalType(traversalType);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of traversal to use to identify asset relationships. Choose the following option:
+     * </p>
+     * <ul>
+     * <li>
+     * <p>
+     * <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify
+     * in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root
+     * asset is the last result.
+     * </p>
+     * </li>
+     * </ul>
+     * 
+     * @param traversalType
+     *        The type of traversal to use to identify asset relationships. Choose the following option:</p>
+     *        <ul>
+     *        <li>
+     *        <p>
+     *        <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you
+     *        specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>
+     *        , and the root asset is the last result.
+     *        </p>
+     *        </li>
+     * @return Returns a reference to this object so that method calls can be chained together.
+     * @see TraversalType
+     */
+
+    public ListAssetRelationshipsRequest withTraversalType(TraversalType traversalType) {
+        this.traversalType = traversalType.toString();
+        return this;
+    }
+
+    /**
+     * <p>
+     * The token to be used for the next set of paginated results.
+     * </p>
+     * 
+     * @param nextToken
+     *        The token to be used for the next set of paginated results.
+     */
+
+    public void setNextToken(String nextToken) {
+        this.nextToken = nextToken;
+    }
+
+    /**
+     * <p>
+     * The token to be used for the next set of paginated results.
+     * </p>
+     * 
+     * @return The token to be used for the next set of paginated results.
+     */
+
+    public String getNextToken() {
+        return this.nextToken;
+    }
+
+    /**
+     * <p>
+     * The token to be used for the next set of paginated results.
+     * </p>
+     * 
+     * @param nextToken
+     *        The token to be used for the next set of paginated results.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsRequest withNextToken(String nextToken) {
+        setNextToken(nextToken);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to be returned per paginated request.
+     * </p>
+     * 
+     * @param maxResults
+     *        The maximum number of results to be returned per paginated request.
+     */
+
+    public void setMaxResults(Integer maxResults) {
+        this.maxResults = maxResults;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to be returned per paginated request.
+     * </p>
+     * 
+     * @return The maximum number of results to be returned per paginated request.
+     */
+
+    public Integer getMaxResults() {
+        return this.maxResults;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to be returned per paginated request.
+     * </p>
+     * 
+     * @param maxResults
+     *        The maximum number of results to be returned per paginated request.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsRequest withMaxResults(Integer maxResults) {
+        setMaxResults(maxResults);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getAssetId() != null)
+            sb.append("AssetId: ").append(getAssetId()).append(",");
+        if (getTraversalType() != null)
+            sb.append("TraversalType: ").append(getTraversalType()).append(",");
+        if (getNextToken() != null)
+            sb.append("NextToken: ").append(getNextToken()).append(",");
+        if (getMaxResults() != null)
+            sb.append("MaxResults: ").append(getMaxResults());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof ListAssetRelationshipsRequest == false)
+            return false;
+        ListAssetRelationshipsRequest other = (ListAssetRelationshipsRequest) obj;
+        if (other.getAssetId() == null ^ this.getAssetId() == null)
+            return false;
+        if (other.getAssetId() != null && other.getAssetId().equals(this.getAssetId()) == false)
+            return false;
+        if (other.getTraversalType() == null ^ this.getTraversalType() == null)
+            return false;
+        if (other.getTraversalType() != null && other.getTraversalType().equals(this.getTraversalType()) == false)
+            return false;
+        if (other.getNextToken() == null ^ this.getNextToken() == null)
+            return false;
+        if (other.getNextToken() != null && other.getNextToken().equals(this.getNextToken()) == false)
+            return false;
+        if (other.getMaxResults() == null ^ this.getMaxResults() == null)
+            return false;
+        if (other.getMaxResults() != null && other.getMaxResults().equals(this.getMaxResults()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getAssetId() == null) ? 0 : getAssetId().hashCode());
+        hashCode = prime * hashCode + ((getTraversalType() == null) ? 0 : getTraversalType().hashCode());
+        hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
+        hashCode = prime * hashCode + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public ListAssetRelationshipsRequest clone() {
+        return (ListAssetRelationshipsRequest) super.clone();
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsResult.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsResult.java
new file mode 100644
index 000000000000..86413cf79e99
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/ListAssetRelationshipsResult.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import java.io.Serializable;
+import javax.annotation.Generated;
+
+/**
+ * 
+ * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/iotsitewise-2019-12-02/ListAssetRelationships" target="_top">AWS
+ *      API Documentation</a>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class ListAssetRelationshipsResult extends com.amazonaws.AmazonWebServiceResult<com.amazonaws.ResponseMetadata> implements Serializable, Cloneable {
+
+    /**
+     * <p>
+     * A list that summarizes each asset relationship.
+     * </p>
+     */
+    private java.util.List<AssetRelationshipSummary> assetRelationshipSummaries;
+    /**
+     * <p>
+     * The token for the next set of results, or null if there are no additional results.
+     * </p>
+     */
+    private String nextToken;
+
+    /**
+     * <p>
+     * A list that summarizes each asset relationship.
+     * </p>
+     * 
+     * @return A list that summarizes each asset relationship.
+     */
+
+    public java.util.List<AssetRelationshipSummary> getAssetRelationshipSummaries() {
+        return assetRelationshipSummaries;
+    }
+
+    /**
+     * <p>
+     * A list that summarizes each asset relationship.
+     * </p>
+     * 
+     * @param assetRelationshipSummaries
+     *        A list that summarizes each asset relationship.
+     */
+
+    public void setAssetRelationshipSummaries(java.util.Collection<AssetRelationshipSummary> assetRelationshipSummaries) {
+        if (assetRelationshipSummaries == null) {
+            this.assetRelationshipSummaries = null;
+            return;
+        }
+
+        this.assetRelationshipSummaries = new java.util.ArrayList<AssetRelationshipSummary>(assetRelationshipSummaries);
+    }
+
+    /**
+     * <p>
+     * A list that summarizes each asset relationship.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setAssetRelationshipSummaries(java.util.Collection)} or
+     * {@link #withAssetRelationshipSummaries(java.util.Collection)} if you want to override the existing values.
+     * </p>
+     * 
+     * @param assetRelationshipSummaries
+     *        A list that summarizes each asset relationship.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsResult withAssetRelationshipSummaries(AssetRelationshipSummary... assetRelationshipSummaries) {
+        if (this.assetRelationshipSummaries == null) {
+            setAssetRelationshipSummaries(new java.util.ArrayList<AssetRelationshipSummary>(assetRelationshipSummaries.length));
+        }
+        for (AssetRelationshipSummary ele : assetRelationshipSummaries) {
+            this.assetRelationshipSummaries.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * A list that summarizes each asset relationship.
+     * </p>
+     * 
+     * @param assetRelationshipSummaries
+     *        A list that summarizes each asset relationship.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsResult withAssetRelationshipSummaries(java.util.Collection<AssetRelationshipSummary> assetRelationshipSummaries) {
+        setAssetRelationshipSummaries(assetRelationshipSummaries);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results, or null if there are no additional results.
+     * </p>
+     * 
+     * @param nextToken
+     *        The token for the next set of results, or null if there are no additional results.
+     */
+
+    public void setNextToken(String nextToken) {
+        this.nextToken = nextToken;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results, or null if there are no additional results.
+     * </p>
+     * 
+     * @return The token for the next set of results, or null if there are no additional results.
+     */
+
+    public String getNextToken() {
+        return this.nextToken;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results, or null if there are no additional results.
+     * </p>
+     * 
+     * @param nextToken
+     *        The token for the next set of results, or null if there are no additional results.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public ListAssetRelationshipsResult withNextToken(String nextToken) {
+        setNextToken(nextToken);
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
+     * redacted from this string using a placeholder value.
+     *
+     * @return A string representation of this object.
+     *
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getAssetRelationshipSummaries() != null)
+            sb.append("AssetRelationshipSummaries: ").append(getAssetRelationshipSummaries()).append(",");
+        if (getNextToken() != null)
+            sb.append("NextToken: ").append(getNextToken());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof ListAssetRelationshipsResult == false)
+            return false;
+        ListAssetRelationshipsResult other = (ListAssetRelationshipsResult) obj;
+        if (other.getAssetRelationshipSummaries() == null ^ this.getAssetRelationshipSummaries() == null)
+            return false;
+        if (other.getAssetRelationshipSummaries() != null && other.getAssetRelationshipSummaries().equals(this.getAssetRelationshipSummaries()) == false)
+            return false;
+        if (other.getNextToken() == null ^ this.getNextToken() == null)
+            return false;
+        if (other.getNextToken() != null && other.getNextToken().equals(this.getNextToken()) == false)
+            return false;
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getAssetRelationshipSummaries() == null) ? 0 : getAssetRelationshipSummaries().hashCode());
+        hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public ListAssetRelationshipsResult clone() {
+        try {
+            return (ListAssetRelationshipsResult) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PortalSummary.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PortalSummary.java
index 200c0ef0270a..70782d6da646 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PortalSummary.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PortalSummary.java
@@ -49,9 +49,8 @@ public class PortalSummary implements Serializable, Cloneable, StructuredPojo {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      */
     private String startUrl;
@@ -203,16 +202,14 @@ public PortalSummary withDescription(String description) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param startUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      */
 
     public void setStartUrl(String startUrl) {
@@ -222,15 +219,13 @@ public void setStartUrl(String startUrl) {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *         for authentication. For portals that use IAM for authentication, you must use the <a
-     *         href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *         >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *         for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise
+     *         console to get a URL that you can use to access the portal.
      */
 
     public String getStartUrl() {
@@ -240,16 +235,14 @@ public String getStartUrl() {
     /**
      * <p>
      * The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for
-     * authentication. For portals that use IAM for authentication, you must use the <a
-     * href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     * >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     * authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a
+     * URL that you can use to access the portal.
      * </p>
      * 
      * @param startUrl
      *        The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO
-     *        for authentication. For portals that use IAM for authentication, you must use the <a
-     *        href="https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html"
-     *        >CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.
+     *        for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console
+     *        to get a URL that you can use to access the portal.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PropertyDataType.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PropertyDataType.java
index fdeac5ca911f..c2e523dc111e 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PropertyDataType.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/PropertyDataType.java
@@ -23,7 +23,8 @@ public enum PropertyDataType {
     STRING("STRING"),
     INTEGER("INTEGER"),
     DOUBLE("DOUBLE"),
-    BOOLEAN("BOOLEAN");
+    BOOLEAN("BOOLEAN"),
+    STRUCT("STRUCT");
 
     private String value;
 
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/TraversalType.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/TraversalType.java
new file mode 100644
index 000000000000..4bb6acac1889
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/TraversalType.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import javax.annotation.Generated;
+
+/**
+ * 
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public enum TraversalType {
+
+    PATH_TO_ROOT("PATH_TO_ROOT");
+
+    private String value;
+
+    private TraversalType(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return this.value;
+    }
+
+    /**
+     * Use this in place of valueOf.
+     *
+     * @param value
+     *        real value
+     * @return TraversalType corresponding to the value
+     *
+     * @throws IllegalArgumentException
+     *         If the specified value does not map to one of the known values in this enum.
+     */
+    public static TraversalType fromValue(String value) {
+        if (value == null || "".equals(value)) {
+            throw new IllegalArgumentException("Value cannot be null or empty!");
+        }
+
+        for (TraversalType enumEntry : TraversalType.values()) {
+            if (enumEntry.toString().equals(value)) {
+                return enumEntry;
+            }
+        }
+
+        throw new IllegalArgumentException("Cannot create enum from " + value + " value!");
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UnauthorizedException.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UnauthorizedException.java
new file mode 100644
index 000000000000..482e41d3adb4
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UnauthorizedException.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model;
+
+import javax.annotation.Generated;
+
+/**
+ * <p>
+ * You are not authorized.
+ * </p>
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class UnauthorizedException extends com.amazonaws.services.iotsitewise.model.AWSIoTSiteWiseException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Constructs a new UnauthorizedException with the specified error message.
+     *
+     * @param message
+     *        Describes the error encountered.
+     */
+    public UnauthorizedException(String message) {
+        super(message);
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UpdateAssetModelRequest.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UpdateAssetModelRequest.java
index f06ac130d42a..af9a80c7e49d 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UpdateAssetModelRequest.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/UpdateAssetModelRequest.java
@@ -70,6 +70,14 @@ public class UpdateAssetModelRequest extends com.amazonaws.AmazonWebServiceReque
      * </p>
      */
     private java.util.List<AssetModelHierarchy> assetModelHierarchies;
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     */
+    private java.util.List<AssetModelCompositeModel> assetModelCompositeModels;
     /**
      * <p>
      * A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse
@@ -450,6 +458,92 @@ public UpdateAssetModelRequest withAssetModelHierarchies(java.util.Collection<As
         return this;
     }
 
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @return The composite asset models that are part of this asset model. Composite asset models are asset models
+     *         that contain specific properties. Each composite model has a type that defines the properties that the
+     *         composite model supports. Use composite asset models to define alarms on this asset model.
+     */
+
+    public java.util.List<AssetModelCompositeModel> getAssetModelCompositeModels() {
+        return assetModelCompositeModels;
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     */
+
+    public void setAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModel> assetModelCompositeModels) {
+        if (assetModelCompositeModels == null) {
+            this.assetModelCompositeModels = null;
+            return;
+        }
+
+        this.assetModelCompositeModels = new java.util.ArrayList<AssetModelCompositeModel>(assetModelCompositeModels);
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * <p>
+     * <b>NOTE:</b> This method appends the values to the existing list (if any). Use
+     * {@link #setAssetModelCompositeModels(java.util.Collection)} or
+     * {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public UpdateAssetModelRequest withAssetModelCompositeModels(AssetModelCompositeModel... assetModelCompositeModels) {
+        if (this.assetModelCompositeModels == null) {
+            setAssetModelCompositeModels(new java.util.ArrayList<AssetModelCompositeModel>(assetModelCompositeModels.length));
+        }
+        for (AssetModelCompositeModel ele : assetModelCompositeModels) {
+            this.assetModelCompositeModels.add(ele);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The composite asset models that are part of this asset model. Composite asset models are asset models that
+     * contain specific properties. Each composite model has a type that defines the properties that the composite model
+     * supports. Use composite asset models to define alarms on this asset model.
+     * </p>
+     * 
+     * @param assetModelCompositeModels
+     *        The composite asset models that are part of this asset model. Composite asset models are asset models that
+     *        contain specific properties. Each composite model has a type that defines the properties that the
+     *        composite model supports. Use composite asset models to define alarms on this asset model.
+     * @return Returns a reference to this object so that method calls can be chained together.
+     */
+
+    public UpdateAssetModelRequest withAssetModelCompositeModels(java.util.Collection<AssetModelCompositeModel> assetModelCompositeModels) {
+        setAssetModelCompositeModels(assetModelCompositeModels);
+        return this;
+    }
+
     /**
      * <p>
      * A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse
@@ -518,6 +612,8 @@ public String toString() {
             sb.append("AssetModelProperties: ").append(getAssetModelProperties()).append(",");
         if (getAssetModelHierarchies() != null)
             sb.append("AssetModelHierarchies: ").append(getAssetModelHierarchies()).append(",");
+        if (getAssetModelCompositeModels() != null)
+            sb.append("AssetModelCompositeModels: ").append(getAssetModelCompositeModels()).append(",");
         if (getClientToken() != null)
             sb.append("ClientToken: ").append(getClientToken());
         sb.append("}");
@@ -554,6 +650,10 @@ public boolean equals(Object obj) {
             return false;
         if (other.getAssetModelHierarchies() != null && other.getAssetModelHierarchies().equals(this.getAssetModelHierarchies()) == false)
             return false;
+        if (other.getAssetModelCompositeModels() == null ^ this.getAssetModelCompositeModels() == null)
+            return false;
+        if (other.getAssetModelCompositeModels() != null && other.getAssetModelCompositeModels().equals(this.getAssetModelCompositeModels()) == false)
+            return false;
         if (other.getClientToken() == null ^ this.getClientToken() == null)
             return false;
         if (other.getClientToken() != null && other.getClientToken().equals(this.getClientToken()) == false)
@@ -571,6 +671,7 @@ public int hashCode() {
         hashCode = prime * hashCode + ((getAssetModelDescription() == null) ? 0 : getAssetModelDescription().hashCode());
         hashCode = prime * hashCode + ((getAssetModelProperties() == null) ? 0 : getAssetModelProperties().hashCode());
         hashCode = prime * hashCode + ((getAssetModelHierarchies() == null) ? 0 : getAssetModelHierarchies().hashCode());
+        hashCode = prime * hashCode + ((getAssetModelCompositeModels() == null) ? 0 : getAssetModelCompositeModels().hashCode());
         hashCode = prime * hashCode + ((getClientToken() == null) ? 0 : getClientToken().hashCode());
         return hashCode;
     }
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelJsonUnmarshaller.java
new file mode 100644
index 000000000000..ccbf47ea3f5d
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelJsonUnmarshaller.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * AssetCompositeModel JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetCompositeModelJsonUnmarshaller implements Unmarshaller<AssetCompositeModel, JsonUnmarshallerContext> {
+
+    public AssetCompositeModel unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AssetCompositeModel assetCompositeModel = new AssetCompositeModel();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("name", targetDepth)) {
+                    context.nextToken();
+                    assetCompositeModel.setName(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("description", targetDepth)) {
+                    context.nextToken();
+                    assetCompositeModel.setDescription(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("type", targetDepth)) {
+                    context.nextToken();
+                    assetCompositeModel.setType(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("properties", targetDepth)) {
+                    context.nextToken();
+                    assetCompositeModel.setProperties(new ListUnmarshaller<AssetProperty>(AssetPropertyJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return assetCompositeModel;
+    }
+
+    private static AssetCompositeModelJsonUnmarshaller instance;
+
+    public static AssetCompositeModelJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new AssetCompositeModelJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelMarshaller.java
new file mode 100644
index 000000000000..e813b0d72e80
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetCompositeModelMarshaller.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.util.List;
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * AssetCompositeModelMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class AssetCompositeModelMarshaller {
+
+    private static final MarshallingInfo<String> NAME_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("name").build();
+    private static final MarshallingInfo<String> DESCRIPTION_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("description").build();
+    private static final MarshallingInfo<String> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("type").build();
+    private static final MarshallingInfo<List> PROPERTIES_BINDING = MarshallingInfo.builder(MarshallingType.LIST).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("properties").build();
+
+    private static final AssetCompositeModelMarshaller instance = new AssetCompositeModelMarshaller();
+
+    public static AssetCompositeModelMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(AssetCompositeModel assetCompositeModel, ProtocolMarshaller protocolMarshaller) {
+
+        if (assetCompositeModel == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(assetCompositeModel.getName(), NAME_BINDING);
+            protocolMarshaller.marshall(assetCompositeModel.getDescription(), DESCRIPTION_BINDING);
+            protocolMarshaller.marshall(assetCompositeModel.getType(), TYPE_BINDING);
+            protocolMarshaller.marshall(assetCompositeModel.getProperties(), PROPERTIES_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlResultJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoJsonUnmarshaller.java
similarity index 66%
rename from aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlResultJsonUnmarshaller.java
rename to aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoJsonUnmarshaller.java
index a01d9a56d7c4..8b3dd1c6b41d 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlResultJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoJsonUnmarshaller.java
@@ -24,13 +24,13 @@
 import static com.fasterxml.jackson.core.JsonToken.*;
 
 /**
- * CreatePresignedPortalUrlResult JSON Unmarshaller
+ * AssetHierarchyInfo JSON Unmarshaller
  */
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
-public class CreatePresignedPortalUrlResultJsonUnmarshaller implements Unmarshaller<CreatePresignedPortalUrlResult, JsonUnmarshallerContext> {
+public class AssetHierarchyInfoJsonUnmarshaller implements Unmarshaller<AssetHierarchyInfo, JsonUnmarshallerContext> {
 
-    public CreatePresignedPortalUrlResult unmarshall(JsonUnmarshallerContext context) throws Exception {
-        CreatePresignedPortalUrlResult createPresignedPortalUrlResult = new CreatePresignedPortalUrlResult();
+    public AssetHierarchyInfo unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AssetHierarchyInfo assetHierarchyInfo = new AssetHierarchyInfo();
 
         int originalDepth = context.getCurrentDepth();
         String currentParentElement = context.getCurrentParentElement();
@@ -40,7 +40,7 @@ public CreatePresignedPortalUrlResult unmarshall(JsonUnmarshallerContext context
         if (token == null)
             token = context.nextToken();
         if (token == VALUE_NULL) {
-            return createPresignedPortalUrlResult;
+            return null;
         }
 
         while (true) {
@@ -48,9 +48,13 @@ public CreatePresignedPortalUrlResult unmarshall(JsonUnmarshallerContext context
                 break;
 
             if (token == FIELD_NAME || token == START_OBJECT) {
-                if (context.testExpression("presignedPortalUrl", targetDepth)) {
+                if (context.testExpression("parentAssetId", targetDepth)) {
                     context.nextToken();
-                    createPresignedPortalUrlResult.setPresignedPortalUrl(context.getUnmarshaller(String.class).unmarshall(context));
+                    assetHierarchyInfo.setParentAssetId(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("childAssetId", targetDepth)) {
+                    context.nextToken();
+                    assetHierarchyInfo.setChildAssetId(context.getUnmarshaller(String.class).unmarshall(context));
                 }
             } else if (token == END_ARRAY || token == END_OBJECT) {
                 if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
@@ -61,14 +65,14 @@ public CreatePresignedPortalUrlResult unmarshall(JsonUnmarshallerContext context
             token = context.nextToken();
         }
 
-        return createPresignedPortalUrlResult;
+        return assetHierarchyInfo;
     }
 
-    private static CreatePresignedPortalUrlResultJsonUnmarshaller instance;
+    private static AssetHierarchyInfoJsonUnmarshaller instance;
 
-    public static CreatePresignedPortalUrlResultJsonUnmarshaller getInstance() {
+    public static AssetHierarchyInfoJsonUnmarshaller getInstance() {
         if (instance == null)
-            instance = new CreatePresignedPortalUrlResultJsonUnmarshaller();
+            instance = new AssetHierarchyInfoJsonUnmarshaller();
         return instance;
     }
 }
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoMarshaller.java
similarity index 52%
rename from aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestMarshaller.java
rename to aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoMarshaller.java
index 9b510444f6d4..c6dbf171875f 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetHierarchyInfoMarshaller.java
@@ -21,35 +21,35 @@
 import com.amazonaws.annotation.SdkInternalApi;
 
 /**
- * CreatePresignedPortalUrlRequestMarshaller
+ * AssetHierarchyInfoMarshaller
  */
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 @SdkInternalApi
-public class CreatePresignedPortalUrlRequestMarshaller {
+public class AssetHierarchyInfoMarshaller {
 
-    private static final MarshallingInfo<String> PORTALID_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PATH)
-            .marshallLocationName("portalId").build();
-    private static final MarshallingInfo<Integer> SESSIONDURATIONSECONDS_BINDING = MarshallingInfo.builder(MarshallingType.INTEGER)
-            .marshallLocation(MarshallLocation.QUERY_PARAM).marshallLocationName("sessionDurationSeconds").build();
+    private static final MarshallingInfo<String> PARENTASSETID_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("parentAssetId").build();
+    private static final MarshallingInfo<String> CHILDASSETID_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("childAssetId").build();
 
-    private static final CreatePresignedPortalUrlRequestMarshaller instance = new CreatePresignedPortalUrlRequestMarshaller();
+    private static final AssetHierarchyInfoMarshaller instance = new AssetHierarchyInfoMarshaller();
 
-    public static CreatePresignedPortalUrlRequestMarshaller getInstance() {
+    public static AssetHierarchyInfoMarshaller getInstance() {
         return instance;
     }
 
     /**
      * Marshall the given parameter object.
      */
-    public void marshall(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest, ProtocolMarshaller protocolMarshaller) {
+    public void marshall(AssetHierarchyInfo assetHierarchyInfo, ProtocolMarshaller protocolMarshaller) {
 
-        if (createPresignedPortalUrlRequest == null) {
+        if (assetHierarchyInfo == null) {
             throw new SdkClientException("Invalid argument passed to marshall(...)");
         }
 
         try {
-            protocolMarshaller.marshall(createPresignedPortalUrlRequest.getPortalId(), PORTALID_BINDING);
-            protocolMarshaller.marshall(createPresignedPortalUrlRequest.getSessionDurationSeconds(), SESSIONDURATIONSECONDS_BINDING);
+            protocolMarshaller.marshall(assetHierarchyInfo.getParentAssetId(), PARENTASSETID_BINDING);
+            protocolMarshaller.marshall(assetHierarchyInfo.getChildAssetId(), CHILDASSETID_BINDING);
         } catch (Exception e) {
             throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
         }
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionJsonUnmarshaller.java
new file mode 100644
index 000000000000..b90cdcdc1376
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionJsonUnmarshaller.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * AssetModelCompositeModelDefinition JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetModelCompositeModelDefinitionJsonUnmarshaller implements Unmarshaller<AssetModelCompositeModelDefinition, JsonUnmarshallerContext> {
+
+    public AssetModelCompositeModelDefinition unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AssetModelCompositeModelDefinition assetModelCompositeModelDefinition = new AssetModelCompositeModelDefinition();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("name", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModelDefinition.setName(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("description", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModelDefinition.setDescription(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("type", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModelDefinition.setType(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("properties", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModelDefinition.setProperties(new ListUnmarshaller<AssetModelPropertyDefinition>(
+                            AssetModelPropertyDefinitionJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return assetModelCompositeModelDefinition;
+    }
+
+    private static AssetModelCompositeModelDefinitionJsonUnmarshaller instance;
+
+    public static AssetModelCompositeModelDefinitionJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new AssetModelCompositeModelDefinitionJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionMarshaller.java
new file mode 100644
index 000000000000..db1102d05524
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelDefinitionMarshaller.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.util.List;
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * AssetModelCompositeModelDefinitionMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class AssetModelCompositeModelDefinitionMarshaller {
+
+    private static final MarshallingInfo<String> NAME_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("name").build();
+    private static final MarshallingInfo<String> DESCRIPTION_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("description").build();
+    private static final MarshallingInfo<String> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("type").build();
+    private static final MarshallingInfo<List> PROPERTIES_BINDING = MarshallingInfo.builder(MarshallingType.LIST).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("properties").build();
+
+    private static final AssetModelCompositeModelDefinitionMarshaller instance = new AssetModelCompositeModelDefinitionMarshaller();
+
+    public static AssetModelCompositeModelDefinitionMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(AssetModelCompositeModelDefinition assetModelCompositeModelDefinition, ProtocolMarshaller protocolMarshaller) {
+
+        if (assetModelCompositeModelDefinition == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(assetModelCompositeModelDefinition.getName(), NAME_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModelDefinition.getDescription(), DESCRIPTION_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModelDefinition.getType(), TYPE_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModelDefinition.getProperties(), PROPERTIES_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelJsonUnmarshaller.java
new file mode 100644
index 000000000000..e3cfdc23656f
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelJsonUnmarshaller.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * AssetModelCompositeModel JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetModelCompositeModelJsonUnmarshaller implements Unmarshaller<AssetModelCompositeModel, JsonUnmarshallerContext> {
+
+    public AssetModelCompositeModel unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AssetModelCompositeModel assetModelCompositeModel = new AssetModelCompositeModel();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("name", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModel.setName(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("description", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModel.setDescription(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("type", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModel.setType(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("properties", targetDepth)) {
+                    context.nextToken();
+                    assetModelCompositeModel.setProperties(new ListUnmarshaller<AssetModelProperty>(AssetModelPropertyJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return assetModelCompositeModel;
+    }
+
+    private static AssetModelCompositeModelJsonUnmarshaller instance;
+
+    public static AssetModelCompositeModelJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new AssetModelCompositeModelJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelMarshaller.java
new file mode 100644
index 000000000000..dfb74a1834f1
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelCompositeModelMarshaller.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.util.List;
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * AssetModelCompositeModelMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class AssetModelCompositeModelMarshaller {
+
+    private static final MarshallingInfo<String> NAME_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("name").build();
+    private static final MarshallingInfo<String> DESCRIPTION_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("description").build();
+    private static final MarshallingInfo<String> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("type").build();
+    private static final MarshallingInfo<List> PROPERTIES_BINDING = MarshallingInfo.builder(MarshallingType.LIST).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("properties").build();
+
+    private static final AssetModelCompositeModelMarshaller instance = new AssetModelCompositeModelMarshaller();
+
+    public static AssetModelCompositeModelMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(AssetModelCompositeModel assetModelCompositeModel, ProtocolMarshaller protocolMarshaller) {
+
+        if (assetModelCompositeModel == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(assetModelCompositeModel.getName(), NAME_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModel.getDescription(), DESCRIPTION_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModel.getType(), TYPE_BINDING);
+            protocolMarshaller.marshall(assetModelCompositeModel.getProperties(), PROPERTIES_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionJsonUnmarshaller.java
index 67c33ca60c86..8a507ba7fc63 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionJsonUnmarshaller.java
@@ -56,6 +56,10 @@ public AssetModelPropertyDefinition unmarshall(JsonUnmarshallerContext context)
                     context.nextToken();
                     assetModelPropertyDefinition.setDataType(context.getUnmarshaller(String.class).unmarshall(context));
                 }
+                if (context.testExpression("dataTypeSpec", targetDepth)) {
+                    context.nextToken();
+                    assetModelPropertyDefinition.setDataTypeSpec(context.getUnmarshaller(String.class).unmarshall(context));
+                }
                 if (context.testExpression("unit", targetDepth)) {
                     context.nextToken();
                     assetModelPropertyDefinition.setUnit(context.getUnmarshaller(String.class).unmarshall(context));
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionMarshaller.java
index 22ed2b955858..c946b5b42360 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyDefinitionMarshaller.java
@@ -31,6 +31,8 @@ public class AssetModelPropertyDefinitionMarshaller {
             .marshallLocationName("name").build();
     private static final MarshallingInfo<String> DATATYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("dataType").build();
+    private static final MarshallingInfo<String> DATATYPESPEC_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("dataTypeSpec").build();
     private static final MarshallingInfo<String> UNIT_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("unit").build();
     private static final MarshallingInfo<StructuredPojo> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRUCTURED)
@@ -54,6 +56,7 @@ public void marshall(AssetModelPropertyDefinition assetModelPropertyDefinition,
         try {
             protocolMarshaller.marshall(assetModelPropertyDefinition.getName(), NAME_BINDING);
             protocolMarshaller.marshall(assetModelPropertyDefinition.getDataType(), DATATYPE_BINDING);
+            protocolMarshaller.marshall(assetModelPropertyDefinition.getDataTypeSpec(), DATATYPESPEC_BINDING);
             protocolMarshaller.marshall(assetModelPropertyDefinition.getUnit(), UNIT_BINDING);
             protocolMarshaller.marshall(assetModelPropertyDefinition.getType(), TYPE_BINDING);
         } catch (Exception e) {
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyJsonUnmarshaller.java
index 732943e6ec91..6b0bad5357fd 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyJsonUnmarshaller.java
@@ -60,6 +60,10 @@ public AssetModelProperty unmarshall(JsonUnmarshallerContext context) throws Exc
                     context.nextToken();
                     assetModelProperty.setDataType(context.getUnmarshaller(String.class).unmarshall(context));
                 }
+                if (context.testExpression("dataTypeSpec", targetDepth)) {
+                    context.nextToken();
+                    assetModelProperty.setDataTypeSpec(context.getUnmarshaller(String.class).unmarshall(context));
+                }
                 if (context.testExpression("unit", targetDepth)) {
                     context.nextToken();
                     assetModelProperty.setUnit(context.getUnmarshaller(String.class).unmarshall(context));
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyMarshaller.java
index dc04bb806729..11924ee869fc 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetModelPropertyMarshaller.java
@@ -33,6 +33,8 @@ public class AssetModelPropertyMarshaller {
             .marshallLocationName("name").build();
     private static final MarshallingInfo<String> DATATYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("dataType").build();
+    private static final MarshallingInfo<String> DATATYPESPEC_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("dataTypeSpec").build();
     private static final MarshallingInfo<String> UNIT_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("unit").build();
     private static final MarshallingInfo<StructuredPojo> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRUCTURED)
@@ -57,6 +59,7 @@ public void marshall(AssetModelProperty assetModelProperty, ProtocolMarshaller p
             protocolMarshaller.marshall(assetModelProperty.getId(), ID_BINDING);
             protocolMarshaller.marshall(assetModelProperty.getName(), NAME_BINDING);
             protocolMarshaller.marshall(assetModelProperty.getDataType(), DATATYPE_BINDING);
+            protocolMarshaller.marshall(assetModelProperty.getDataTypeSpec(), DATATYPESPEC_BINDING);
             protocolMarshaller.marshall(assetModelProperty.getUnit(), UNIT_BINDING);
             protocolMarshaller.marshall(assetModelProperty.getType(), TYPE_BINDING);
         } catch (Exception e) {
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyJsonUnmarshaller.java
index 4738843e57ac..95bf2521d1be 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyJsonUnmarshaller.java
@@ -68,6 +68,10 @@ public AssetProperty unmarshall(JsonUnmarshallerContext context) throws Exceptio
                     context.nextToken();
                     assetProperty.setDataType(context.getUnmarshaller(String.class).unmarshall(context));
                 }
+                if (context.testExpression("dataTypeSpec", targetDepth)) {
+                    context.nextToken();
+                    assetProperty.setDataTypeSpec(context.getUnmarshaller(String.class).unmarshall(context));
+                }
                 if (context.testExpression("unit", targetDepth)) {
                     context.nextToken();
                     assetProperty.setUnit(context.getUnmarshaller(String.class).unmarshall(context));
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyMarshaller.java
index 46d97c708ce3..a46b0fba6945 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetPropertyMarshaller.java
@@ -37,6 +37,8 @@ public class AssetPropertyMarshaller {
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("notification").build();
     private static final MarshallingInfo<String> DATATYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("dataType").build();
+    private static final MarshallingInfo<String> DATATYPESPEC_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("dataTypeSpec").build();
     private static final MarshallingInfo<String> UNIT_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
             .marshallLocationName("unit").build();
 
@@ -61,6 +63,7 @@ public void marshall(AssetProperty assetProperty, ProtocolMarshaller protocolMar
             protocolMarshaller.marshall(assetProperty.getAlias(), ALIAS_BINDING);
             protocolMarshaller.marshall(assetProperty.getNotification(), NOTIFICATION_BINDING);
             protocolMarshaller.marshall(assetProperty.getDataType(), DATATYPE_BINDING);
+            protocolMarshaller.marshall(assetProperty.getDataTypeSpec(), DATATYPESPEC_BINDING);
             protocolMarshaller.marshall(assetProperty.getUnit(), UNIT_BINDING);
         } catch (Exception e) {
             throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryJsonUnmarshaller.java
new file mode 100644
index 000000000000..62ead33423a1
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryJsonUnmarshaller.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * AssetRelationshipSummary JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class AssetRelationshipSummaryJsonUnmarshaller implements Unmarshaller<AssetRelationshipSummary, JsonUnmarshallerContext> {
+
+    public AssetRelationshipSummary unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AssetRelationshipSummary assetRelationshipSummary = new AssetRelationshipSummary();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("hierarchyInfo", targetDepth)) {
+                    context.nextToken();
+                    assetRelationshipSummary.setHierarchyInfo(AssetHierarchyInfoJsonUnmarshaller.getInstance().unmarshall(context));
+                }
+                if (context.testExpression("relationshipType", targetDepth)) {
+                    context.nextToken();
+                    assetRelationshipSummary.setRelationshipType(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return assetRelationshipSummary;
+    }
+
+    private static AssetRelationshipSummaryJsonUnmarshaller instance;
+
+    public static AssetRelationshipSummaryJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new AssetRelationshipSummaryJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryMarshaller.java
new file mode 100644
index 000000000000..44dd6ceb3334
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/AssetRelationshipSummaryMarshaller.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * AssetRelationshipSummaryMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class AssetRelationshipSummaryMarshaller {
+
+    private static final MarshallingInfo<StructuredPojo> HIERARCHYINFO_BINDING = MarshallingInfo.builder(MarshallingType.STRUCTURED)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("hierarchyInfo").build();
+    private static final MarshallingInfo<String> RELATIONSHIPTYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("relationshipType").build();
+
+    private static final AssetRelationshipSummaryMarshaller instance = new AssetRelationshipSummaryMarshaller();
+
+    public static AssetRelationshipSummaryMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(AssetRelationshipSummary assetRelationshipSummary, ProtocolMarshaller protocolMarshaller) {
+
+        if (assetRelationshipSummary == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(assetRelationshipSummary.getHierarchyInfo(), HIERARCHYINFO_BINDING);
+            protocolMarshaller.marshall(assetRelationshipSummary.getRelationshipType(), RELATIONSHIPTYPE_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyJsonUnmarshaller.java
new file mode 100644
index 000000000000..e96bad852a5d
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyJsonUnmarshaller.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * CompositeModelProperty JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class CompositeModelPropertyJsonUnmarshaller implements Unmarshaller<CompositeModelProperty, JsonUnmarshallerContext> {
+
+    public CompositeModelProperty unmarshall(JsonUnmarshallerContext context) throws Exception {
+        CompositeModelProperty compositeModelProperty = new CompositeModelProperty();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("name", targetDepth)) {
+                    context.nextToken();
+                    compositeModelProperty.setName(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("type", targetDepth)) {
+                    context.nextToken();
+                    compositeModelProperty.setType(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+                if (context.testExpression("assetProperty", targetDepth)) {
+                    context.nextToken();
+                    compositeModelProperty.setAssetProperty(PropertyJsonUnmarshaller.getInstance().unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return compositeModelProperty;
+    }
+
+    private static CompositeModelPropertyJsonUnmarshaller instance;
+
+    public static CompositeModelPropertyJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new CompositeModelPropertyJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyMarshaller.java
new file mode 100644
index 000000000000..a69bef15fe3e
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CompositeModelPropertyMarshaller.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * CompositeModelPropertyMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class CompositeModelPropertyMarshaller {
+
+    private static final MarshallingInfo<String> NAME_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("name").build();
+    private static final MarshallingInfo<String> TYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PAYLOAD)
+            .marshallLocationName("type").build();
+    private static final MarshallingInfo<StructuredPojo> ASSETPROPERTY_BINDING = MarshallingInfo.builder(MarshallingType.STRUCTURED)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetProperty").build();
+
+    private static final CompositeModelPropertyMarshaller instance = new CompositeModelPropertyMarshaller();
+
+    public static CompositeModelPropertyMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(CompositeModelProperty compositeModelProperty, ProtocolMarshaller protocolMarshaller) {
+
+        if (compositeModelProperty == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(compositeModelProperty.getName(), NAME_BINDING);
+            protocolMarshaller.marshall(compositeModelProperty.getType(), TYPE_BINDING);
+            protocolMarshaller.marshall(compositeModelProperty.getAssetProperty(), ASSETPROPERTY_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreateAssetModelRequestMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreateAssetModelRequestMarshaller.java
index 376a42f5343a..eccb9797962e 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreateAssetModelRequestMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreateAssetModelRequestMarshaller.java
@@ -39,6 +39,8 @@ public class CreateAssetModelRequestMarshaller {
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelProperties").build();
     private static final MarshallingInfo<List> ASSETMODELHIERARCHIES_BINDING = MarshallingInfo.builder(MarshallingType.LIST)
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelHierarchies").build();
+    private static final MarshallingInfo<List> ASSETMODELCOMPOSITEMODELS_BINDING = MarshallingInfo.builder(MarshallingType.LIST)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelCompositeModels").build();
     private static final MarshallingInfo<String> CLIENTTOKEN_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("clientToken")
             .defaultValueSupplier(com.amazonaws.util.IdempotentUtils.getGenerator()).build();
@@ -65,6 +67,7 @@ public void marshall(CreateAssetModelRequest createAssetModelRequest, ProtocolMa
             protocolMarshaller.marshall(createAssetModelRequest.getAssetModelDescription(), ASSETMODELDESCRIPTION_BINDING);
             protocolMarshaller.marshall(createAssetModelRequest.getAssetModelProperties(), ASSETMODELPROPERTIES_BINDING);
             protocolMarshaller.marshall(createAssetModelRequest.getAssetModelHierarchies(), ASSETMODELHIERARCHIES_BINDING);
+            protocolMarshaller.marshall(createAssetModelRequest.getAssetModelCompositeModels(), ASSETMODELCOMPOSITEMODELS_BINDING);
             protocolMarshaller.marshall(createAssetModelRequest.getClientToken(), CLIENTTOKEN_BINDING);
             protocolMarshaller.marshall(createAssetModelRequest.getTags(), TAGS_BINDING);
         } catch (Exception e) {
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetModelResultJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetModelResultJsonUnmarshaller.java
index dcc2af61fd68..1da45927146a 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetModelResultJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetModelResultJsonUnmarshaller.java
@@ -77,6 +77,13 @@ public DescribeAssetModelResult unmarshall(JsonUnmarshallerContext context) thro
 
                     .unmarshall(context));
                 }
+                if (context.testExpression("assetModelCompositeModels", targetDepth)) {
+                    context.nextToken();
+                    describeAssetModelResult.setAssetModelCompositeModels(new ListUnmarshaller<AssetModelCompositeModel>(
+                            AssetModelCompositeModelJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
                 if (context.testExpression("assetModelCreationDate", targetDepth)) {
                     context.nextToken();
                     describeAssetModelResult.setAssetModelCreationDate(DateJsonUnmarshallerFactory.getInstance("unixTimestamp").unmarshall(context));
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetPropertyResultJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetPropertyResultJsonUnmarshaller.java
index 52c532be7811..40935b74be6d 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetPropertyResultJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetPropertyResultJsonUnmarshaller.java
@@ -64,6 +64,10 @@ public DescribeAssetPropertyResult unmarshall(JsonUnmarshallerContext context) t
                     context.nextToken();
                     describeAssetPropertyResult.setAssetProperty(PropertyJsonUnmarshaller.getInstance().unmarshall(context));
                 }
+                if (context.testExpression("compositeModel", targetDepth)) {
+                    context.nextToken();
+                    describeAssetPropertyResult.setCompositeModel(CompositeModelPropertyJsonUnmarshaller.getInstance().unmarshall(context));
+                }
             } else if (token == END_ARRAY || token == END_OBJECT) {
                 if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
                     if (context.getCurrentDepth() <= originalDepth)
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetResultJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetResultJsonUnmarshaller.java
index 583976e9dc00..03f1728adef4 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetResultJsonUnmarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/DescribeAssetResultJsonUnmarshaller.java
@@ -76,6 +76,12 @@ public DescribeAssetResult unmarshall(JsonUnmarshallerContext context) throws Ex
 
                     .unmarshall(context));
                 }
+                if (context.testExpression("assetCompositeModels", targetDepth)) {
+                    context.nextToken();
+                    describeAssetResult.setAssetCompositeModels(new ListUnmarshaller<AssetCompositeModel>(AssetCompositeModelJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
                 if (context.testExpression("assetCreationDate", targetDepth)) {
                     context.nextToken();
                     describeAssetResult.setAssetCreationDate(DateJsonUnmarshallerFactory.getInstance("unixTimestamp").unmarshall(context));
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestMarshaller.java
new file mode 100644
index 000000000000..8136f9232cef
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestMarshaller.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.SdkClientException;
+import com.amazonaws.services.iotsitewise.model.*;
+
+import com.amazonaws.protocol.*;
+import com.amazonaws.annotation.SdkInternalApi;
+
+/**
+ * ListAssetRelationshipsRequestMarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+@SdkInternalApi
+public class ListAssetRelationshipsRequestMarshaller {
+
+    private static final MarshallingInfo<String> ASSETID_BINDING = MarshallingInfo.builder(MarshallingType.STRING).marshallLocation(MarshallLocation.PATH)
+            .marshallLocationName("assetId").build();
+    private static final MarshallingInfo<String> TRAVERSALTYPE_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.QUERY_PARAM).marshallLocationName("traversalType").build();
+    private static final MarshallingInfo<String> NEXTTOKEN_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
+            .marshallLocation(MarshallLocation.QUERY_PARAM).marshallLocationName("nextToken").build();
+    private static final MarshallingInfo<Integer> MAXRESULTS_BINDING = MarshallingInfo.builder(MarshallingType.INTEGER)
+            .marshallLocation(MarshallLocation.QUERY_PARAM).marshallLocationName("maxResults").build();
+
+    private static final ListAssetRelationshipsRequestMarshaller instance = new ListAssetRelationshipsRequestMarshaller();
+
+    public static ListAssetRelationshipsRequestMarshaller getInstance() {
+        return instance;
+    }
+
+    /**
+     * Marshall the given parameter object.
+     */
+    public void marshall(ListAssetRelationshipsRequest listAssetRelationshipsRequest, ProtocolMarshaller protocolMarshaller) {
+
+        if (listAssetRelationshipsRequest == null) {
+            throw new SdkClientException("Invalid argument passed to marshall(...)");
+        }
+
+        try {
+            protocolMarshaller.marshall(listAssetRelationshipsRequest.getAssetId(), ASSETID_BINDING);
+            protocolMarshaller.marshall(listAssetRelationshipsRequest.getTraversalType(), TRAVERSALTYPE_BINDING);
+            protocolMarshaller.marshall(listAssetRelationshipsRequest.getNextToken(), NEXTTOKEN_BINDING);
+            protocolMarshaller.marshall(listAssetRelationshipsRequest.getMaxResults(), MAXRESULTS_BINDING);
+        } catch (Exception e) {
+            throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestProtocolMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestProtocolMarshaller.java
similarity index 63%
rename from aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestProtocolMarshaller.java
rename to aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestProtocolMarshaller.java
index c11a84a4192c..9cef0e8ede3c 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/CreatePresignedPortalUrlRequestProtocolMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsRequestProtocolMarshaller.java
@@ -26,34 +26,34 @@
 import com.amazonaws.annotation.SdkInternalApi;
 
 /**
- * CreatePresignedPortalUrlRequest Marshaller
+ * ListAssetRelationshipsRequest Marshaller
  */
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 @SdkInternalApi
-public class CreatePresignedPortalUrlRequestProtocolMarshaller implements Marshaller<Request<CreatePresignedPortalUrlRequest>, CreatePresignedPortalUrlRequest> {
+public class ListAssetRelationshipsRequestProtocolMarshaller implements Marshaller<Request<ListAssetRelationshipsRequest>, ListAssetRelationshipsRequest> {
 
     private static final OperationInfo SDK_OPERATION_BINDING = OperationInfo.builder().protocol(Protocol.REST_JSON)
-            .requestUri("/portals/{portalId}/presigned-url").httpMethodName(HttpMethodName.GET).hasExplicitPayloadMember(false).hasPayloadMembers(false)
+            .requestUri("/assets/{assetId}/assetRelationships").httpMethodName(HttpMethodName.GET).hasExplicitPayloadMember(false).hasPayloadMembers(false)
             .serviceName("AWSIoTSiteWise").build();
 
     private final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory;
 
-    public CreatePresignedPortalUrlRequestProtocolMarshaller(com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory) {
+    public ListAssetRelationshipsRequestProtocolMarshaller(com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory) {
         this.protocolFactory = protocolFactory;
     }
 
-    public Request<CreatePresignedPortalUrlRequest> marshall(CreatePresignedPortalUrlRequest createPresignedPortalUrlRequest) {
+    public Request<ListAssetRelationshipsRequest> marshall(ListAssetRelationshipsRequest listAssetRelationshipsRequest) {
 
-        if (createPresignedPortalUrlRequest == null) {
+        if (listAssetRelationshipsRequest == null) {
             throw new SdkClientException("Invalid argument passed to marshall(...)");
         }
 
         try {
-            final ProtocolRequestMarshaller<CreatePresignedPortalUrlRequest> protocolMarshaller = protocolFactory.createProtocolMarshaller(
-                    SDK_OPERATION_BINDING, createPresignedPortalUrlRequest);
+            final ProtocolRequestMarshaller<ListAssetRelationshipsRequest> protocolMarshaller = protocolFactory.createProtocolMarshaller(SDK_OPERATION_BINDING,
+                    listAssetRelationshipsRequest);
 
             protocolMarshaller.startMarshalling();
-            CreatePresignedPortalUrlRequestMarshaller.getInstance().marshall(createPresignedPortalUrlRequest, protocolMarshaller);
+            ListAssetRelationshipsRequestMarshaller.getInstance().marshall(listAssetRelationshipsRequest, protocolMarshaller);
             return protocolMarshaller.finishMarshalling();
         } catch (Exception e) {
             throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsResultJsonUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsResultJsonUnmarshaller.java
new file mode 100644
index 000000000000..b9db30d3355f
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/ListAssetRelationshipsResultJsonUnmarshaller.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * ListAssetRelationshipsResult JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class ListAssetRelationshipsResultJsonUnmarshaller implements Unmarshaller<ListAssetRelationshipsResult, JsonUnmarshallerContext> {
+
+    public ListAssetRelationshipsResult unmarshall(JsonUnmarshallerContext context) throws Exception {
+        ListAssetRelationshipsResult listAssetRelationshipsResult = new ListAssetRelationshipsResult();
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return listAssetRelationshipsResult;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+                if (context.testExpression("assetRelationshipSummaries", targetDepth)) {
+                    context.nextToken();
+                    listAssetRelationshipsResult.setAssetRelationshipSummaries(new ListUnmarshaller<AssetRelationshipSummary>(
+                            AssetRelationshipSummaryJsonUnmarshaller.getInstance())
+
+                    .unmarshall(context));
+                }
+                if (context.testExpression("nextToken", targetDepth)) {
+                    context.nextToken();
+                    listAssetRelationshipsResult.setNextToken(context.getUnmarshaller(String.class).unmarshall(context));
+                }
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+
+        return listAssetRelationshipsResult;
+    }
+
+    private static ListAssetRelationshipsResultJsonUnmarshaller instance;
+
+    public static ListAssetRelationshipsResultJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new ListAssetRelationshipsResultJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UnauthorizedExceptionUnmarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UnauthorizedExceptionUnmarshaller.java
new file mode 100644
index 000000000000..24dd2fbd7e07
--- /dev/null
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UnauthorizedExceptionUnmarshaller.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
+ * the License. A copy of the License is located at
+ * 
+ * http://aws.amazon.com/apache2.0
+ * 
+ * or in the "license" file accompanying this file. This file 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.
+ */
+package com.amazonaws.services.iotsitewise.model.transform;
+
+import java.math.*;
+
+import javax.annotation.Generated;
+
+import com.amazonaws.services.iotsitewise.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+
+import com.fasterxml.jackson.core.JsonToken;
+import static com.fasterxml.jackson.core.JsonToken.*;
+
+/**
+ * UnauthorizedException JSON Unmarshaller
+ */
+@Generated("com.amazonaws:aws-java-sdk-code-generator")
+public class UnauthorizedExceptionUnmarshaller extends EnhancedJsonErrorUnmarshaller {
+    private UnauthorizedExceptionUnmarshaller() {
+        super(com.amazonaws.services.iotsitewise.model.UnauthorizedException.class, "UnauthorizedException");
+    }
+
+    @Override
+    public com.amazonaws.services.iotsitewise.model.UnauthorizedException unmarshallFromContext(JsonUnmarshallerContext context) throws Exception {
+        com.amazonaws.services.iotsitewise.model.UnauthorizedException unauthorizedException = new com.amazonaws.services.iotsitewise.model.UnauthorizedException(
+                null);
+
+        int originalDepth = context.getCurrentDepth();
+        String currentParentElement = context.getCurrentParentElement();
+        int targetDepth = originalDepth + 1;
+
+        JsonToken token = context.getCurrentToken();
+        if (token == null)
+            token = context.nextToken();
+        if (token == VALUE_NULL) {
+            return null;
+        }
+
+        while (true) {
+            if (token == null)
+                break;
+
+            if (token == FIELD_NAME || token == START_OBJECT) {
+            } else if (token == END_ARRAY || token == END_OBJECT) {
+                if (context.getLastParsedParentElement() == null || context.getLastParsedParentElement().equals(currentParentElement)) {
+                    if (context.getCurrentDepth() <= originalDepth)
+                        break;
+                }
+            }
+            token = context.nextToken();
+        }
+        return unauthorizedException;
+    }
+
+    private static UnauthorizedExceptionUnmarshaller instance;
+
+    public static UnauthorizedExceptionUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new UnauthorizedExceptionUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UpdateAssetModelRequestMarshaller.java b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UpdateAssetModelRequestMarshaller.java
index ebdc3e6e3c23..d5bd2df0e0fb 100644
--- a/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UpdateAssetModelRequestMarshaller.java
+++ b/aws-java-sdk-iotsitewise/src/main/java/com/amazonaws/services/iotsitewise/model/transform/UpdateAssetModelRequestMarshaller.java
@@ -40,6 +40,8 @@ public class UpdateAssetModelRequestMarshaller {
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelProperties").build();
     private static final MarshallingInfo<List> ASSETMODELHIERARCHIES_BINDING = MarshallingInfo.builder(MarshallingType.LIST)
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelHierarchies").build();
+    private static final MarshallingInfo<List> ASSETMODELCOMPOSITEMODELS_BINDING = MarshallingInfo.builder(MarshallingType.LIST)
+            .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("assetModelCompositeModels").build();
     private static final MarshallingInfo<String> CLIENTTOKEN_BINDING = MarshallingInfo.builder(MarshallingType.STRING)
             .marshallLocation(MarshallLocation.PAYLOAD).marshallLocationName("clientToken")
             .defaultValueSupplier(com.amazonaws.util.IdempotentUtils.getGenerator()).build();
@@ -65,6 +67,7 @@ public void marshall(UpdateAssetModelRequest updateAssetModelRequest, ProtocolMa
             protocolMarshaller.marshall(updateAssetModelRequest.getAssetModelDescription(), ASSETMODELDESCRIPTION_BINDING);
             protocolMarshaller.marshall(updateAssetModelRequest.getAssetModelProperties(), ASSETMODELPROPERTIES_BINDING);
             protocolMarshaller.marshall(updateAssetModelRequest.getAssetModelHierarchies(), ASSETMODELHIERARCHIES_BINDING);
+            protocolMarshaller.marshall(updateAssetModelRequest.getAssetModelCompositeModels(), ASSETMODELCOMPOSITEMODELS_BINDING);
             protocolMarshaller.marshall(updateAssetModelRequest.getClientToken(), CLIENTTOKEN_BINDING);
         } catch (Exception e) {
             throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
diff --git a/aws-java-sdk-iotthingsgraph/pom.xml b/aws-java-sdk-iotthingsgraph/pom.xml
index 4493c46bfe3c..5ad86fa33dee 100644
--- a/aws-java-sdk-iotthingsgraph/pom.xml
+++ b/aws-java-sdk-iotthingsgraph/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-iotthingsgraph</artifactId>
diff --git a/aws-java-sdk-ivs/pom.xml b/aws-java-sdk-ivs/pom.xml
index b0ea612e8a77..522226ef4f1e 100644
--- a/aws-java-sdk-ivs/pom.xml
+++ b/aws-java-sdk-ivs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ivs</artifactId>
diff --git a/aws-java-sdk-kafka/pom.xml b/aws-java-sdk-kafka/pom.xml
index cd4864c1265a..66f27114c1c1 100644
--- a/aws-java-sdk-kafka/pom.xml
+++ b/aws-java-sdk-kafka/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kafka</artifactId>
diff --git a/aws-java-sdk-kendra/pom.xml b/aws-java-sdk-kendra/pom.xml
index cb0a24f278d6..3c7110067c7b 100644
--- a/aws-java-sdk-kendra/pom.xml
+++ b/aws-java-sdk-kendra/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kendra</artifactId>
diff --git a/aws-java-sdk-kinesis/pom.xml b/aws-java-sdk-kinesis/pom.xml
index 0917be659068..5ded0c578ecc 100644
--- a/aws-java-sdk-kinesis/pom.xml
+++ b/aws-java-sdk-kinesis/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kinesis</artifactId>
diff --git a/aws-java-sdk-kinesisanalyticsv2/pom.xml b/aws-java-sdk-kinesisanalyticsv2/pom.xml
index 83999871c2c2..fe15b6d7f7ba 100644
--- a/aws-java-sdk-kinesisanalyticsv2/pom.xml
+++ b/aws-java-sdk-kinesisanalyticsv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kinesisanalyticsv2</artifactId>
diff --git a/aws-java-sdk-kinesisvideo/pom.xml b/aws-java-sdk-kinesisvideo/pom.xml
index cbc6e93aef59..dabc9b2b0675 100644
--- a/aws-java-sdk-kinesisvideo/pom.xml
+++ b/aws-java-sdk-kinesisvideo/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kinesisvideo</artifactId>
diff --git a/aws-java-sdk-kinesisvideosignalingchannels/pom.xml b/aws-java-sdk-kinesisvideosignalingchannels/pom.xml
index e448ecdbf92c..7a55ff3eae07 100644
--- a/aws-java-sdk-kinesisvideosignalingchannels/pom.xml
+++ b/aws-java-sdk-kinesisvideosignalingchannels/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kinesisvideosignalingchannels</artifactId>
diff --git a/aws-java-sdk-kms/pom.xml b/aws-java-sdk-kms/pom.xml
index cb6481803e09..014102b1cc93 100644
--- a/aws-java-sdk-kms/pom.xml
+++ b/aws-java-sdk-kms/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-kms</artifactId>
diff --git a/aws-java-sdk-lakeformation/pom.xml b/aws-java-sdk-lakeformation/pom.xml
index af5cea18ca81..e2a407110671 100644
--- a/aws-java-sdk-lakeformation/pom.xml
+++ b/aws-java-sdk-lakeformation/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lakeformation</artifactId>
diff --git a/aws-java-sdk-lambda/pom.xml b/aws-java-sdk-lambda/pom.xml
index 4b236f905cca..861856a86f22 100644
--- a/aws-java-sdk-lambda/pom.xml
+++ b/aws-java-sdk-lambda/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lambda</artifactId>
diff --git a/aws-java-sdk-lex/pom.xml b/aws-java-sdk-lex/pom.xml
index 06dd3b419ad2..0c77e8f779a7 100644
--- a/aws-java-sdk-lex/pom.xml
+++ b/aws-java-sdk-lex/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lex</artifactId>
diff --git a/aws-java-sdk-lexmodelbuilding/pom.xml b/aws-java-sdk-lexmodelbuilding/pom.xml
index 0d4216cd6c7b..bbd424d18a7a 100644
--- a/aws-java-sdk-lexmodelbuilding/pom.xml
+++ b/aws-java-sdk-lexmodelbuilding/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lexmodelbuilding</artifactId>
diff --git a/aws-java-sdk-licensemanager/pom.xml b/aws-java-sdk-licensemanager/pom.xml
index 46c32f29f930..7b1401ff7ad2 100644
--- a/aws-java-sdk-licensemanager/pom.xml
+++ b/aws-java-sdk-licensemanager/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-licensemanager</artifactId>
diff --git a/aws-java-sdk-lightsail/pom.xml b/aws-java-sdk-lightsail/pom.xml
index a0f73ab635ab..2e1f056eaf4e 100644
--- a/aws-java-sdk-lightsail/pom.xml
+++ b/aws-java-sdk-lightsail/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lightsail</artifactId>
diff --git a/aws-java-sdk-logs/pom.xml b/aws-java-sdk-logs/pom.xml
index 4fd2d4e45c97..f1cd9523cde3 100644
--- a/aws-java-sdk-logs/pom.xml
+++ b/aws-java-sdk-logs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-logs</artifactId>
diff --git a/aws-java-sdk-lookoutforvision/pom.xml b/aws-java-sdk-lookoutforvision/pom.xml
index 759e0e51f285..e4dfc06bfc93 100644
--- a/aws-java-sdk-lookoutforvision/pom.xml
+++ b/aws-java-sdk-lookoutforvision/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-lookoutforvision</artifactId>
diff --git a/aws-java-sdk-machinelearning/pom.xml b/aws-java-sdk-machinelearning/pom.xml
index 8d2a85906d36..13c6dbb70b9c 100644
--- a/aws-java-sdk-machinelearning/pom.xml
+++ b/aws-java-sdk-machinelearning/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-machinelearning</artifactId>
diff --git a/aws-java-sdk-macie/pom.xml b/aws-java-sdk-macie/pom.xml
index a88557d82d92..6d6bf0a19a8e 100644
--- a/aws-java-sdk-macie/pom.xml
+++ b/aws-java-sdk-macie/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-macie</artifactId>
diff --git a/aws-java-sdk-macie2/pom.xml b/aws-java-sdk-macie2/pom.xml
index 901319904b0f..f00b8f93eeff 100644
--- a/aws-java-sdk-macie2/pom.xml
+++ b/aws-java-sdk-macie2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-macie2</artifactId>
diff --git a/aws-java-sdk-managedblockchain/pom.xml b/aws-java-sdk-managedblockchain/pom.xml
index 046999a0dcd1..b829faf48e83 100644
--- a/aws-java-sdk-managedblockchain/pom.xml
+++ b/aws-java-sdk-managedblockchain/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-managedblockchain</artifactId>
diff --git a/aws-java-sdk-marketplacecatalog/pom.xml b/aws-java-sdk-marketplacecatalog/pom.xml
index b57a4c2fa618..a22c6b6b1055 100644
--- a/aws-java-sdk-marketplacecatalog/pom.xml
+++ b/aws-java-sdk-marketplacecatalog/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-marketplacecatalog</artifactId>
diff --git a/aws-java-sdk-marketplacecommerceanalytics/pom.xml b/aws-java-sdk-marketplacecommerceanalytics/pom.xml
index ef22565f93b5..8f115e22aa71 100644
--- a/aws-java-sdk-marketplacecommerceanalytics/pom.xml
+++ b/aws-java-sdk-marketplacecommerceanalytics/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-marketplacecommerceanalytics</artifactId>
diff --git a/aws-java-sdk-marketplaceentitlement/pom.xml b/aws-java-sdk-marketplaceentitlement/pom.xml
index b3cadbf0f773..c7b8caf1c82f 100644
--- a/aws-java-sdk-marketplaceentitlement/pom.xml
+++ b/aws-java-sdk-marketplaceentitlement/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-marketplaceentitlement</artifactId>
diff --git a/aws-java-sdk-marketplacemeteringservice/pom.xml b/aws-java-sdk-marketplacemeteringservice/pom.xml
index 09dd6135f8bd..b376eec89f70 100644
--- a/aws-java-sdk-marketplacemeteringservice/pom.xml
+++ b/aws-java-sdk-marketplacemeteringservice/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-marketplacemeteringservice</artifactId>
diff --git a/aws-java-sdk-mechanicalturkrequester/pom.xml b/aws-java-sdk-mechanicalturkrequester/pom.xml
index e94c7b510bce..f216ef0feec0 100644
--- a/aws-java-sdk-mechanicalturkrequester/pom.xml
+++ b/aws-java-sdk-mechanicalturkrequester/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mechanicalturkrequester</artifactId>
diff --git a/aws-java-sdk-mediaconnect/pom.xml b/aws-java-sdk-mediaconnect/pom.xml
index 34504baac5f8..c0be56fcc0ba 100644
--- a/aws-java-sdk-mediaconnect/pom.xml
+++ b/aws-java-sdk-mediaconnect/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediaconnect</artifactId>
diff --git a/aws-java-sdk-mediaconvert/pom.xml b/aws-java-sdk-mediaconvert/pom.xml
index b2dcffcaaed6..0c5f91978411 100644
--- a/aws-java-sdk-mediaconvert/pom.xml
+++ b/aws-java-sdk-mediaconvert/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediaconvert</artifactId>
diff --git a/aws-java-sdk-medialive/pom.xml b/aws-java-sdk-medialive/pom.xml
index c488ed81c6c1..eaa4f5e7b906 100644
--- a/aws-java-sdk-medialive/pom.xml
+++ b/aws-java-sdk-medialive/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-medialive</artifactId>
diff --git a/aws-java-sdk-mediapackage/pom.xml b/aws-java-sdk-mediapackage/pom.xml
index 05ca5743b0fc..6c61c3d4f533 100644
--- a/aws-java-sdk-mediapackage/pom.xml
+++ b/aws-java-sdk-mediapackage/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediapackage</artifactId>
diff --git a/aws-java-sdk-mediapackagevod/pom.xml b/aws-java-sdk-mediapackagevod/pom.xml
index 2f45b8b14639..246dbbbec0b0 100644
--- a/aws-java-sdk-mediapackagevod/pom.xml
+++ b/aws-java-sdk-mediapackagevod/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediapackagevod</artifactId>
diff --git a/aws-java-sdk-mediastore/pom.xml b/aws-java-sdk-mediastore/pom.xml
index 5254e7830ac8..1219963faef6 100644
--- a/aws-java-sdk-mediastore/pom.xml
+++ b/aws-java-sdk-mediastore/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediastore</artifactId>
diff --git a/aws-java-sdk-mediastoredata/pom.xml b/aws-java-sdk-mediastoredata/pom.xml
index 5b22cdba206b..010e6a87fc09 100644
--- a/aws-java-sdk-mediastoredata/pom.xml
+++ b/aws-java-sdk-mediastoredata/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediastoredata</artifactId>
diff --git a/aws-java-sdk-mediatailor/pom.xml b/aws-java-sdk-mediatailor/pom.xml
index f8ee5762cc61..f01aca559b73 100644
--- a/aws-java-sdk-mediatailor/pom.xml
+++ b/aws-java-sdk-mediatailor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mediatailor</artifactId>
diff --git a/aws-java-sdk-migrationhub/pom.xml b/aws-java-sdk-migrationhub/pom.xml
index 1bf6b31dabbb..aeec30fb4c11 100644
--- a/aws-java-sdk-migrationhub/pom.xml
+++ b/aws-java-sdk-migrationhub/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-migrationhub</artifactId>
diff --git a/aws-java-sdk-migrationhubconfig/pom.xml b/aws-java-sdk-migrationhubconfig/pom.xml
index f56ab606daaa..6147452f08d9 100644
--- a/aws-java-sdk-migrationhubconfig/pom.xml
+++ b/aws-java-sdk-migrationhubconfig/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-migrationhubconfig</artifactId>
diff --git a/aws-java-sdk-mobile/pom.xml b/aws-java-sdk-mobile/pom.xml
index 7f949c4a018c..13c534e97ad6 100644
--- a/aws-java-sdk-mobile/pom.xml
+++ b/aws-java-sdk-mobile/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mobile</artifactId>
diff --git a/aws-java-sdk-models/pom.xml b/aws-java-sdk-models/pom.xml
index fe93bf25d98a..1c3c79c1a5b1 100644
--- a/aws-java-sdk-models/pom.xml
+++ b/aws-java-sdk-models/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-models</artifactId>
diff --git a/aws-java-sdk-models/src/main/resources/models/AWS242AppRegistry-2020-06-24-intermediate.json b/aws-java-sdk-models/src/main/resources/models/AWS242AppRegistry-2020-06-24-intermediate.json
index 5e0306cf53a7..197d6da7d034 100644
--- a/aws-java-sdk-models/src/main/resources/models/AWS242AppRegistry-2020-06-24-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/AWS242AppRegistry-2020-06-24-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/a4b-2017-11-09-intermediate.json b/aws-java-sdk-models/src/main/resources/models/a4b-2017-11-09-intermediate.json
index da503b58b799..bb9ed50a0a22 100644
--- a/aws-java-sdk-models/src/main/resources/models/a4b-2017-11-09-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/a4b-2017-11-09-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/accessanalyzer-2019-11-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/accessanalyzer-2019-11-01-intermediate.json
index 061a16e4c3f1..f8aa9a51206e 100644
--- a/aws-java-sdk-models/src/main/resources/models/accessanalyzer-2019-11-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/accessanalyzer-2019-11-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/amplify-2017-07-25-intermediate.json b/aws-java-sdk-models/src/main/resources/models/amplify-2017-07-25-intermediate.json
index 11ca7f074866..dd356263745b 100644
--- a/aws-java-sdk-models/src/main/resources/models/amplify-2017-07-25-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/amplify-2017-07-25-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/api.mediatailor-2018-04-23-intermediate.json b/aws-java-sdk-models/src/main/resources/models/api.mediatailor-2018-04-23-intermediate.json
index d37155aafcb9..682a363208c6 100644
--- a/aws-java-sdk-models/src/main/resources/models/api.mediatailor-2018-04-23-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/api.mediatailor-2018-04-23-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/api.sagemaker-2017-07-24-intermediate.json b/aws-java-sdk-models/src/main/resources/models/api.sagemaker-2017-07-24-intermediate.json
index c185f5352e1b..16c7f0729be7 100644
--- a/aws-java-sdk-models/src/main/resources/models/api.sagemaker-2017-07-24-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/api.sagemaker-2017-07-24-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-intermediate.json
index 1a2d38878d65..10a851c1b812 100644
--- a/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-intermediate.json
@@ -4664,7 +4664,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -4735,7 +4735,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -5050,7 +5050,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -5274,7 +5274,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -5589,7 +5589,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -5813,7 +5813,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -12705,7 +12705,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -12813,7 +12813,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ResourceName",
+            "c2jShape" : "XmlStringMaxLen255",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -12929,7 +12929,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -13038,7 +13038,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ResourceName",
+              "c2jShape" : "XmlStringMaxLen255",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -13552,7 +13552,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -13776,7 +13776,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -16229,7 +16229,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "LaunchConfigurationName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the launch configuration to use to launch instances. </p> <p>Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).</p>",
         "endpointDiscoveryId" : false,
@@ -18897,7 +18897,7 @@
         },
         "LaunchConfigurationName" : {
           "c2jName" : "LaunchConfigurationName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the launch configuration to use to launch instances. </p> <p>Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).</p>",
           "endpointDiscoveryId" : false,
@@ -25004,7 +25004,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -25144,7 +25144,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -25375,7 +25375,7 @@
       },
       "members" : [ {
         "c2jName" : "LaunchConfigurationName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the launch configuration.</p>",
         "endpointDiscoveryId" : false,
@@ -25446,7 +25446,7 @@
       "membersAsMap" : {
         "LaunchConfigurationName" : {
           "c2jName" : "LaunchConfigurationName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the launch configuration.</p>",
           "endpointDiscoveryId" : false,
@@ -25676,7 +25676,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -25747,7 +25747,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -25978,7 +25978,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -26047,7 +26047,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "TopicARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
         "endpointDiscoveryId" : false,
@@ -26118,7 +26118,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -26188,7 +26188,7 @@
         },
         "TopicARN" : {
           "c2jName" : "TopicARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
           "endpointDiscoveryId" : false,
@@ -26349,7 +26349,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -26489,7 +26489,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -26720,7 +26720,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -26789,7 +26789,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "ScheduledActionName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the action to delete.</p>",
         "endpointDiscoveryId" : false,
@@ -26860,7 +26860,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -26930,7 +26930,7 @@
         },
         "ScheduledActionName" : {
           "c2jName" : "ScheduledActionName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the action to delete.</p>",
           "endpointDiscoveryId" : false,
@@ -28579,7 +28579,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ResourceName",
+            "c2jShape" : "XmlStringMaxLen255",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -28872,7 +28872,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ResourceName",
+              "c2jShape" : "XmlStringMaxLen255",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -32493,7 +32493,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ResourceName",
+            "c2jShape" : "XmlStringMaxLen255",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -32786,7 +32786,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ResourceName",
+              "c2jShape" : "XmlStringMaxLen255",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -33979,7 +33979,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -34203,7 +34203,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -34826,7 +34826,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -35035,7 +35035,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -35783,7 +35783,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -35992,7 +35992,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -37486,7 +37486,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ResourceName",
+            "c2jShape" : "XmlStringMaxLen255",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -37779,7 +37779,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ResourceName",
+              "c2jShape" : "XmlStringMaxLen255",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -38572,7 +38572,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -39087,7 +39087,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -40296,7 +40296,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -40659,7 +40659,7 @@
         },
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -41807,7 +41807,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -41915,7 +41915,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ResourceName",
+            "c2jShape" : "XmlStringMaxLen255",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -42307,7 +42307,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -42626,7 +42626,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ResourceName",
+              "c2jShape" : "XmlStringMaxLen255",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -45027,7 +45027,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -45167,7 +45167,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -45860,7 +45860,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -46084,7 +46084,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -46399,7 +46399,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -46623,7 +46623,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -46938,7 +46938,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -47162,7 +47162,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -48356,7 +48356,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -48649,7 +48649,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -49510,7 +49510,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -49650,7 +49650,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -50343,7 +50343,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -50690,7 +50690,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -51284,7 +51284,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -51355,7 +51355,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -61959,7 +61959,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group for the lifecycle hook.</p>",
         "endpointDiscoveryId" : false,
@@ -62097,7 +62097,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "NotificationTargetARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "NotificationTargetResourceName",
         "deprecated" : false,
         "documentation" : "<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>",
         "endpointDiscoveryId" : false,
@@ -62166,7 +62166,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "RoleARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.</p>",
         "endpointDiscoveryId" : false,
@@ -62513,7 +62513,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group for the lifecycle hook.</p>",
           "endpointDiscoveryId" : false,
@@ -63003,7 +63003,7 @@
         },
         "NotificationTargetARN" : {
           "c2jName" : "NotificationTargetARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "NotificationTargetResourceName",
           "deprecated" : false,
           "documentation" : "<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>",
           "endpointDiscoveryId" : false,
@@ -63073,7 +63073,7 @@
         },
         "RoleARN" : {
           "c2jName" : "RoleARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.</p>",
           "endpointDiscoveryId" : false,
@@ -63600,7 +63600,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "RoleARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p>",
         "endpointDiscoveryId" : false,
@@ -64091,7 +64091,7 @@
         },
         "RoleARN" : {
           "c2jName" : "RoleARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p>",
           "endpointDiscoveryId" : false,
@@ -66103,7 +66103,7 @@
       "marshaller" : null,
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -66172,7 +66172,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "TopicARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
         "endpointDiscoveryId" : false,
@@ -66312,7 +66312,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -66452,7 +66452,7 @@
         },
         "TopicARN" : {
           "c2jName" : "TopicARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
           "endpointDiscoveryId" : false,
@@ -67148,7 +67148,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -67286,7 +67286,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "RoleARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>",
         "endpointDiscoveryId" : false,
@@ -67633,7 +67633,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -68123,7 +68123,7 @@
         },
         "RoleARN" : {
           "c2jName" : "RoleARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>",
           "endpointDiscoveryId" : false,
@@ -68284,7 +68284,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -68353,7 +68353,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "TopicARN",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
         "endpointDiscoveryId" : false,
@@ -68577,7 +68577,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -68801,7 +68801,7 @@
         },
         "TopicARN" : {
           "c2jName" : "TopicARN",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>",
           "endpointDiscoveryId" : false,
@@ -68962,7 +68962,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -70015,7 +70015,7 @@
         },
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -71477,7 +71477,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -72100,7 +72100,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -73922,7 +73922,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -74146,7 +74146,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -79542,7 +79542,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -79751,7 +79751,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -80715,7 +80715,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -80855,7 +80855,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -82352,7 +82352,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -82576,7 +82576,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -85806,7 +85806,7 @@
       },
       "members" : [ {
         "c2jName" : "AutoScalingGroupName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the Auto Scaling group.</p>",
         "endpointDiscoveryId" : false,
@@ -85875,7 +85875,7 @@
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "LaunchConfigurationName",
-        "c2jShape" : "ResourceName",
+        "c2jShape" : "XmlStringMaxLen255",
         "deprecated" : false,
         "documentation" : "<p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>",
         "endpointDiscoveryId" : false,
@@ -87218,7 +87218,7 @@
       "membersAsMap" : {
         "AutoScalingGroupName" : {
           "c2jName" : "AutoScalingGroupName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the Auto Scaling group.</p>",
           "endpointDiscoveryId" : false,
@@ -87792,7 +87792,7 @@
         },
         "LaunchConfigurationName" : {
           "c2jName" : "LaunchConfigurationName",
-          "c2jShape" : "ResourceName",
+          "c2jShape" : "XmlStringMaxLen255",
           "deprecated" : false,
           "documentation" : "<p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>",
           "endpointDiscoveryId" : false,
diff --git a/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-model.json b/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-model.json
index f75da0c12148..1fa080ff97d4 100644
--- a/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/autoscaling-2011-01-01-model.json
@@ -1046,7 +1046,7 @@
           "documentation":"<p>The IDs of the instances. You can specify up to 20 instances.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         }
       }
@@ -1064,7 +1064,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "TargetGroupARNs":{
@@ -1086,7 +1086,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "LoadBalancerNames":{
@@ -1224,7 +1224,7 @@
     "AutoScalingGroupMinSize":{"type":"integer"},
     "AutoScalingGroupNames":{
       "type":"list",
-      "member":{"shape":"ResourceName"}
+      "member":{"shape":"XmlStringMaxLen255"}
     },
     "AutoScalingGroupNamesType":{
       "type":"structure",
@@ -1338,8 +1338,7 @@
     },
     "AvailabilityZones":{
       "type":"list",
-      "member":{"shape":"XmlStringMaxLen255"},
-      "min":1
+      "member":{"shape":"XmlStringMaxLen255"}
     },
     "BatchDeleteScheduledActionAnswer":{
       "type":"structure",
@@ -1358,7 +1357,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScheduledActionNames":{
@@ -1384,7 +1383,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScheduledUpdateGroupActions":{
@@ -1510,7 +1509,7 @@
           "documentation":"<p>The name of the Auto Scaling group. This name must be unique per Region per account.</p>"
         },
         "LaunchConfigurationName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the launch configuration to use to launch instances. </p> <p>Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).</p>"
         },
         "LaunchTemplate":{
@@ -1727,7 +1726,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ForceDelete":{
@@ -1753,7 +1752,7 @@
           "documentation":"<p>The name of the lifecycle hook.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         }
       }
@@ -1766,11 +1765,11 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "TopicARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>"
         }
       }
@@ -1780,7 +1779,7 @@
       "required":["PolicyName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "PolicyName":{
@@ -1797,11 +1796,11 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScheduledActionName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the action to delete.</p>"
         }
       }
@@ -1930,7 +1929,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "LifecycleHookNames":{
@@ -1944,7 +1943,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "NextToken":{
@@ -1975,7 +1974,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "NextToken":{
@@ -2049,7 +2048,7 @@
       "type":"structure",
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "PolicyNames":{
@@ -2078,7 +2077,7 @@
           "documentation":"<p>The activity IDs of the desired scaling activities. You can specify up to 50 IDs. If you omit this parameter, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "MaxRecords":{
@@ -2095,7 +2094,7 @@
       "type":"structure",
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScheduledActionNames":{
@@ -2167,7 +2166,7 @@
           "documentation":"<p>The IDs of the instances. You can specify up to 20 instances.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ShouldDecrementDesiredCapacity":{
@@ -2189,7 +2188,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "TargetGroupARNs":{
@@ -2211,7 +2210,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "LoadBalancerNames":{
@@ -2225,7 +2224,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "Metrics":{
@@ -2274,7 +2273,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "Metrics":{
@@ -2326,7 +2325,7 @@
           "documentation":"<p>The IDs of the instances. You can specify up to 20 instances.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ShouldDecrementDesiredCapacity":{
@@ -2341,7 +2340,7 @@
       "required":["PolicyName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "PolicyName":{
@@ -2380,7 +2379,7 @@
           "documentation":"<p>The IDs of the instances. You can specify up to 20 instances.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         }
       }
@@ -2758,14 +2757,14 @@
       "required":["LaunchConfigurationName"],
       "members":{
         "LaunchConfigurationName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the launch configuration.</p>"
         }
       }
     },
     "LaunchConfigurationNames":{
       "type":"list",
-      "member":{"shape":"ResourceName"}
+      "member":{"shape":"XmlStringMaxLen255"}
     },
     "LaunchConfigurationNamesType":{
       "type":"structure",
@@ -2872,7 +2871,7 @@
           "documentation":"<p>The name of the lifecycle hook.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group for the lifecycle hook.</p>"
         },
         "LifecycleTransition":{
@@ -2880,11 +2879,11 @@
           "documentation":"<p>The state of the EC2 instance to which to attach the lifecycle hook. The following are possible values:</p> <ul> <li> <p>autoscaling:EC2_INSTANCE_LAUNCHING</p> </li> <li> <p>autoscaling:EC2_INSTANCE_TERMINATING</p> </li> </ul>"
         },
         "NotificationTargetARN":{
-          "shape":"ResourceName",
+          "shape":"NotificationTargetResourceName",
           "documentation":"<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>"
         },
         "RoleARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.</p>"
         },
         "NotificationMetadata":{
@@ -2943,7 +2942,7 @@
           "documentation":"<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>"
         },
         "RoleARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p>"
         }
       },
@@ -3145,11 +3144,11 @@
       "type":"structure",
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "TopicARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>"
         },
         "NotificationType":{
@@ -3165,7 +3164,7 @@
     },
     "NotificationTargetResourceName":{
       "type":"string",
-      "max":1600,
+      "max":255,
       "min":0,
       "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*"
     },
@@ -3276,7 +3275,7 @@
           "documentation":"<p>The name of the lifecycle hook.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "LifecycleTransition":{
@@ -3284,7 +3283,7 @@
           "documentation":"<p>The instance state to which you want to attach the lifecycle hook. The valid values are:</p> <ul> <li> <p>autoscaling:EC2_INSTANCE_LAUNCHING</p> </li> <li> <p>autoscaling:EC2_INSTANCE_TERMINATING</p> </li> </ul> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>"
         },
         "RoleARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue.</p> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>"
         },
         "NotificationTargetARN":{
@@ -3314,11 +3313,11 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "TopicARN":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic.</p>"
         },
         "NotificationTypes":{
@@ -3335,7 +3334,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "PolicyName":{
@@ -3396,7 +3395,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScheduledActionName":{
@@ -3632,7 +3631,7 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ScalingProcesses":{
@@ -3643,7 +3642,7 @@
     },
     "ScheduledActionNames":{
       "type":"list",
-      "member":{"shape":"ResourceName"}
+      "member":{"shape":"XmlStringMaxLen255"}
     },
     "ScheduledActionsType":{
       "type":"structure",
@@ -3772,7 +3771,7 @@
       ],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "DesiredCapacity":{
@@ -3824,7 +3823,7 @@
           "documentation":"<p>One or more instance IDs. You can specify up to 50 instances.</p>"
         },
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "ProtectedFromScaleIn":{
@@ -4049,11 +4048,11 @@
       "required":["AutoScalingGroupName"],
       "members":{
         "AutoScalingGroupName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the Auto Scaling group.</p>"
         },
         "LaunchConfigurationName":{
-          "shape":"ResourceName",
+          "shape":"XmlStringMaxLen255",
           "documentation":"<p>The name of the launch configuration. If you specify <code>LaunchConfigurationName</code> in your update request, you can't specify <code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>.</p>"
         },
         "LaunchTemplate":{
diff --git a/aws-java-sdk-models/src/main/resources/models/autoscaling-plans-2018-01-06-intermediate.json b/aws-java-sdk-models/src/main/resources/models/autoscaling-plans-2018-01-06-intermediate.json
index c134660ff859..34aa4fa45aa6 100644
--- a/aws-java-sdk-models/src/main/resources/models/autoscaling-plans-2018-01-06-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/autoscaling-plans-2018-01-06-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/backup-2018-11-15-intermediate.json b/aws-java-sdk-models/src/main/resources/models/backup-2018-11-15-intermediate.json
index 1d210c01ff5a..fd6e9f7745b4 100644
--- a/aws-java-sdk-models/src/main/resources/models/backup-2018-11-15-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/backup-2018-11-15-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientConstructors", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/ce-2017-10-25-intermediate.json b/aws-java-sdk-models/src/main/resources/models/ce-2017-10-25-intermediate.json
index fb3be379a715..d4a70533c23d 100644
--- a/aws-java-sdk-models/src/main/resources/models/ce-2017-10-25-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/ce-2017-10-25-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/chime-2018-05-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/chime-2018-05-01-intermediate.json
index 91313bd04390..065e1340ca74 100644
--- a/aws-java-sdk-models/src/main/resources/models/chime-2018-05-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/chime-2018-05-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/cloud9-2017-09-23-intermediate.json b/aws-java-sdk-models/src/main/resources/models/cloud9-2017-09-23-intermediate.json
index cd1ce7815073..460c397abfdb 100644
--- a/aws-java-sdk-models/src/main/resources/models/cloud9-2017-09-23-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/cloud9-2017-09-23-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-intermediate.json
index c40151e6939a..8abd4dcccb6f 100644
--- a/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-intermediate.json
@@ -290,6 +290,10 @@
         "exceptionName" : "OrganizationNotInAllFeaturesModeException",
         "documentation" : "<p>This exception is thrown when AWS Organizations is not configured to support all features. All features must be enabled in AWS Organization to support creating an organization trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html\">Prepare For Creating a Trail For Your Organization</a>.</p>",
         "httpStatusCode" : null
+      }, {
+        "exceptionName" : "CloudTrailInvalidClientTokenIdException",
+        "documentation" : "<p>This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended AWS account.</p>",
+        "httpStatusCode" : null
       } ],
       "hasBlobMemberAsPayload" : false,
       "hostPrefixProcessor" : null,
@@ -836,7 +840,7 @@
       "asyncReturnType" : "PutEventSelectorsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Configures an event selector for your trail. Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. </p> <p>When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. </p> <p>Example</p> <ol> <li> <p>You create an event selector for a trail and specify that you want write-only events.</p> </li> <li> <p>The EC2 <code>GetConsoleOutput</code> and <code>RunInstances</code> API operations occur in your account.</p> </li> <li> <p>CloudTrail evaluates whether the events match your event selectors.</p> </li> <li> <p>The <code>RunInstances</code> is a write-only event and it matches your event selector. The trail logs the event.</p> </li> <li> <p>The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail doesn't log the event. </p> </li> </ol> <p>The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> is thrown.</p> <p>You can configure up to five event selectors for each trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html\">Logging Data and Management Events for Trails </a> and <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html\">Limits in AWS CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.</p>",
+      "documentation" : "<p>Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events.</p> <p>When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. </p> <p>Example</p> <ol> <li> <p>You create an event selector for a trail and specify that you want write-only events.</p> </li> <li> <p>The EC2 <code>GetConsoleOutput</code> and <code>RunInstances</code> API operations occur in your account.</p> </li> <li> <p>CloudTrail evaluates whether the events match your event selectors.</p> </li> <li> <p>The <code>RunInstances</code> is a write-only event and it matches your event selector. The trail logs the event.</p> </li> <li> <p>The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't log the event. </p> </li> </ol> <p>The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.</p> <p>You can configure up to five event selectors for each trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html\">Logging data and management events for trails </a> and <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html\">Quotas in AWS CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.</p> <p>You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -855,7 +859,7 @@
         "httpStatusCode" : null
       }, {
         "exceptionName" : "InvalidEventSelectorsException",
-        "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors or data resources that is not valid. The combination of event selectors and data resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
+        "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
         "httpStatusCode" : null
       }, {
         "exceptionName" : "UnsupportedOperationException",
@@ -1208,7 +1212,7 @@
         "httpStatusCode" : null
       }, {
         "exceptionName" : "InvalidEventSelectorsException",
-        "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors or data resources that is not valid. The combination of event selectors and data resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
+        "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
         "httpStatusCode" : null
       }, {
         "exceptionName" : "InvalidParameterCombinationException",
@@ -1270,6 +1274,10 @@
         "exceptionName" : "OrganizationNotInAllFeaturesModeException",
         "documentation" : "<p>This exception is thrown when AWS Organizations is not configured to support all features. All features must be enabled in AWS Organization to support creating an organization trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html\">Prepare For Creating a Trail For Your Organization</a>.</p>",
         "httpStatusCode" : null
+      }, {
+        "exceptionName" : "CloudTrailInvalidClientTokenIdException",
+        "documentation" : "<p>This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended AWS account.</p>",
+        "httpStatusCode" : null
       } ],
       "hasBlobMemberAsPayload" : false,
       "hostPrefixProcessor" : null,
@@ -1841,7 +1849,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.</p> <ul> <li> <p> <code>readOnly</code> </p> </li> <li> <p> <code>eventSource</code> </p> </li> <li> <p> <code>eventName</code> </p> </li> <li> <p> <code>eventCategory</code> </p> </li> <li> <p> <code>resources.type</code> </p> </li> <li> <p> <code>resources.ARN</code> </p> </li> </ul> <p>You cannot apply both event selectors and advanced event selectors to a trail.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -1856,12 +1864,12 @@
         "c2jName" : "Name",
         "c2jShape" : "SelectorName",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param name \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@return An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -1895,7 +1903,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param name */",
+        "setterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -1910,13 +1918,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n@param name \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "",
+          "documentation" : "<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -1925,12 +1933,12 @@
         "c2jName" : "FieldSelectors",
         "c2jShape" : "AdvancedFieldSelectors",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p>Contains all selector statements in an advanced event selector.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param fieldSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withFieldSelectors",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@return Contains all selector statements in an advanced event selector.*/",
         "getterMethodName" : "getFieldSelectors",
         "getterModel" : {
           "returnType" : "java.util.List<AdvancedFieldSelector>",
@@ -2048,7 +2056,7 @@
         "marshallingType" : "LIST",
         "name" : "FieldSelectors",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param fieldSelectors */",
+        "setterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.*/",
         "setterMethodName" : "setFieldSelectors",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2063,13 +2071,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setFieldSelectors(java.util.Collection)} or {@link #withFieldSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param fieldSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setFieldSelectors(java.util.Collection)} or {@link #withFieldSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedFieldSelector>",
           "variableName" : "fieldSelectors",
           "variableType" : "java.util.List<AdvancedFieldSelector>",
-          "documentation" : "",
+          "documentation" : "<p>Contains all selector statements in an advanced event selector.</p>",
           "simpleType" : "List<AdvancedFieldSelector>",
           "variableSetterType" : "java.util.Collection<AdvancedFieldSelector>"
         },
@@ -2080,12 +2088,12 @@
           "c2jName" : "FieldSelectors",
           "c2jShape" : "AdvancedFieldSelectors",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p>Contains all selector statements in an advanced event selector.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param fieldSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withFieldSelectors",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@return Contains all selector statements in an advanced event selector.*/",
           "getterMethodName" : "getFieldSelectors",
           "getterModel" : {
             "returnType" : "java.util.List<AdvancedFieldSelector>",
@@ -2203,7 +2211,7 @@
           "marshallingType" : "LIST",
           "name" : "FieldSelectors",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param fieldSelectors */",
+          "setterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.*/",
           "setterMethodName" : "setFieldSelectors",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2218,13 +2226,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setFieldSelectors(java.util.Collection)} or {@link #withFieldSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param fieldSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Contains all selector statements in an advanced event selector.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setFieldSelectors(java.util.Collection)} or {@link #withFieldSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param fieldSelectors Contains all selector statements in an advanced event selector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedFieldSelector>",
             "variableName" : "fieldSelectors",
             "variableType" : "java.util.List<AdvancedFieldSelector>",
-            "documentation" : "",
+            "documentation" : "<p>Contains all selector statements in an advanced event selector.</p>",
             "simpleType" : "List<AdvancedFieldSelector>",
             "variableSetterType" : "java.util.Collection<AdvancedFieldSelector>"
           },
@@ -2234,12 +2242,12 @@
           "c2jName" : "Name",
           "c2jShape" : "SelectorName",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param name \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@return An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -2273,7 +2281,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param name */",
+          "setterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2288,13 +2296,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n@param name \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>\n@param name An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "",
+            "documentation" : "<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -2304,7 +2312,7 @@
       "packageName" : "com.amazonaws.services.cloudtrail.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "Name", "FieldSelectors" ],
+      "required" : [ "FieldSelectors" ],
       "shapeName" : "AdvancedEventSelector",
       "signerAware" : false,
       "signerType" : null,
@@ -2332,7 +2340,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>A single selector statement in an advanced event selector.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -2347,12 +2355,12 @@
         "c2jName" : "Field",
         "c2jShape" : "SelectorField",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param field \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withField",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@return A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>*/",
         "getterMethodName" : "getField",
         "getterModel" : {
           "returnType" : "String",
@@ -2386,7 +2394,7 @@
         "marshallingType" : "STRING",
         "name" : "Field",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param field */",
+        "setterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>*/",
         "setterMethodName" : "setField",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2401,13 +2409,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n@param field \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "field",
           "variableType" : "String",
-          "documentation" : "",
+          "documentation" : "<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -2416,12 +2424,12 @@
         "c2jName" : "Equals",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param equals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withEquals",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@return An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.*/",
         "getterMethodName" : "getEquals",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -2539,7 +2547,7 @@
         "marshallingType" : "LIST",
         "name" : "Equals",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param equals */",
+        "setterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.*/",
         "setterMethodName" : "setEquals",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2554,13 +2562,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEquals(java.util.Collection)} or {@link #withEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param equals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEquals(java.util.Collection)} or {@link #withEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "equals",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -2569,12 +2577,12 @@
         "c2jName" : "StartsWith",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param startsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withStartsWith",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
         "getterMethodName" : "getStartsWith",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -2692,7 +2700,7 @@
         "marshallingType" : "LIST",
         "name" : "StartsWith",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param startsWith */",
+        "setterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
         "setterMethodName" : "setStartsWith",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2707,13 +2715,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setStartsWith(java.util.Collection)} or {@link #withStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param startsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setStartsWith(java.util.Collection)} or {@link #withStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "startsWith",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -2722,12 +2730,12 @@
         "c2jName" : "EndsWith",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param endsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withEndsWith",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
         "getterMethodName" : "getEndsWith",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -2845,7 +2853,7 @@
         "marshallingType" : "LIST",
         "name" : "EndsWith",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param endsWith */",
+        "setterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
         "setterMethodName" : "setEndsWith",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2860,13 +2868,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEndsWith(java.util.Collection)} or {@link #withEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param endsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEndsWith(java.util.Collection)} or {@link #withEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "endsWith",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -2875,12 +2883,12 @@
         "c2jName" : "NotEquals",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param notEquals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withNotEquals",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.*/",
         "getterMethodName" : "getNotEquals",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -2998,7 +3006,7 @@
         "marshallingType" : "LIST",
         "name" : "NotEquals",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param notEquals */",
+        "setterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.*/",
         "setterMethodName" : "setNotEquals",
         "setterModel" : {
           "timestampFormat" : null,
@@ -3013,13 +3021,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEquals(java.util.Collection)} or {@link #withNotEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param notEquals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEquals(java.util.Collection)} or {@link #withNotEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "notEquals",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -3028,12 +3036,12 @@
         "c2jName" : "NotStartsWith",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param notStartsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withNotStartsWith",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
         "getterMethodName" : "getNotStartsWith",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -3151,7 +3159,7 @@
         "marshallingType" : "LIST",
         "name" : "NotStartsWith",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param notStartsWith */",
+        "setterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
         "setterMethodName" : "setNotStartsWith",
         "setterModel" : {
           "timestampFormat" : null,
@@ -3166,13 +3174,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotStartsWith(java.util.Collection)} or {@link #withNotStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notStartsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotStartsWith(java.util.Collection)} or {@link #withNotStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "notStartsWith",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -3181,12 +3189,12 @@
         "c2jName" : "NotEndsWith",
         "c2jShape" : "Operator",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param notEndsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withNotEndsWith",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
         "getterMethodName" : "getNotEndsWith",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -3304,7 +3312,7 @@
         "marshallingType" : "LIST",
         "name" : "NotEndsWith",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param notEndsWith */",
+        "setterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
         "setterMethodName" : "setNotEndsWith",
         "setterModel" : {
           "timestampFormat" : null,
@@ -3319,13 +3327,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEndsWith(java.util.Collection)} or {@link #withNotEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notEndsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEndsWith(java.util.Collection)} or {@link #withNotEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "notEndsWith",
           "variableType" : "java.util.List<String>",
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -3336,12 +3344,12 @@
           "c2jName" : "EndsWith",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param endsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withEndsWith",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
           "getterMethodName" : "getEndsWith",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -3459,7 +3467,7 @@
           "marshallingType" : "LIST",
           "name" : "EndsWith",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param endsWith */",
+          "setterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
           "setterMethodName" : "setEndsWith",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3474,13 +3482,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEndsWith(java.util.Collection)} or {@link #withEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param endsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEndsWith(java.util.Collection)} or {@link #withEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param endsWith An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "endsWith",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -3490,12 +3498,12 @@
           "c2jName" : "Equals",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param equals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withEquals",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@return An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.*/",
           "getterMethodName" : "getEquals",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -3613,7 +3621,7 @@
           "marshallingType" : "LIST",
           "name" : "Equals",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param equals */",
+          "setterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.*/",
           "setterMethodName" : "setEquals",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3628,13 +3636,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEquals(java.util.Collection)} or {@link #withEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param equals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEquals(java.util.Collection)} or {@link #withEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param equals An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "equals",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -3644,12 +3652,12 @@
           "c2jName" : "Field",
           "c2jShape" : "SelectorField",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param field \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withField",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@return A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>*/",
           "getterMethodName" : "getField",
           "getterModel" : {
             "returnType" : "String",
@@ -3683,7 +3691,7 @@
           "marshallingType" : "STRING",
           "name" : "Field",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param field */",
+          "setterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>*/",
           "setterMethodName" : "setField",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3698,13 +3706,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n@param field \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>\n@param field A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "field",
             "variableType" : "String",
-            "documentation" : "",
+            "documentation" : "<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -3714,12 +3722,12 @@
           "c2jName" : "NotEndsWith",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param notEndsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withNotEndsWith",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
           "getterMethodName" : "getNotEndsWith",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -3837,7 +3845,7 @@
           "marshallingType" : "LIST",
           "name" : "NotEndsWith",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param notEndsWith */",
+          "setterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.*/",
           "setterMethodName" : "setNotEndsWith",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3852,13 +3860,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEndsWith(java.util.Collection)} or {@link #withNotEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notEndsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEndsWith(java.util.Collection)} or {@link #withNotEndsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notEndsWith An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "notEndsWith",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -3868,12 +3876,12 @@
           "c2jName" : "NotEquals",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param notEquals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withNotEquals",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.*/",
           "getterMethodName" : "getNotEquals",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -3991,7 +3999,7 @@
           "marshallingType" : "LIST",
           "name" : "NotEquals",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param notEquals */",
+          "setterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.*/",
           "setterMethodName" : "setNotEquals",
           "setterModel" : {
             "timestampFormat" : null,
@@ -4006,13 +4014,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEquals(java.util.Collection)} or {@link #withNotEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param notEquals \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotEquals(java.util.Collection)} or {@link #withNotEquals(java.util.Collection)} if you want to override the existing values.</p>\n@param notEquals An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "notEquals",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -4022,12 +4030,12 @@
           "c2jName" : "NotStartsWith",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param notStartsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withNotStartsWith",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
           "getterMethodName" : "getNotStartsWith",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -4145,7 +4153,7 @@
           "marshallingType" : "LIST",
           "name" : "NotStartsWith",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param notStartsWith */",
+          "setterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
           "setterMethodName" : "setNotStartsWith",
           "setterModel" : {
             "timestampFormat" : null,
@@ -4160,13 +4168,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotStartsWith(java.util.Collection)} or {@link #withNotStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notStartsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setNotStartsWith(java.util.Collection)} or {@link #withNotStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param notStartsWith An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "notStartsWith",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -4176,12 +4184,12 @@
           "c2jName" : "StartsWith",
           "c2jShape" : "Operator",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param startsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withStartsWith",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@return An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
           "getterMethodName" : "getStartsWith",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -4299,7 +4307,7 @@
           "marshallingType" : "LIST",
           "name" : "StartsWith",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param startsWith */",
+          "setterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.*/",
           "setterMethodName" : "setStartsWith",
           "setterModel" : {
             "timestampFormat" : null,
@@ -4314,13 +4322,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setStartsWith(java.util.Collection)} or {@link #withStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param startsWith \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setStartsWith(java.util.Collection)} or {@link #withStartsWith(java.util.Collection)} if you want to override the existing values.</p>\n@param startsWith An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "startsWith",
             "variableType" : "java.util.List<String>",
-            "documentation" : "",
+            "documentation" : "<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -4431,6 +4439,47 @@
       },
       "wrapper" : false
     },
+    "CloudTrailInvalidClientTokenIdException" : {
+      "c2jName" : "CloudTrailInvalidClientTokenIdException",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended AWS account.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : "CloudTrailInvalidClientTokenIdException",
+      "fullyQualifiedName" : "com.amazonaws.services.cloudtrail.exception.CloudTrailInvalidClientTokenIdException",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.cloudtrail.exception",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "CloudTrailInvalidClientTokenIdException",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "CloudTrailInvalidClientTokenIdException",
+        "variableName" : "cloudTrailInvalidClientTokenIdException",
+        "variableType" : "CloudTrailInvalidClientTokenIdException",
+        "documentation" : null,
+        "simpleType" : "CloudTrailInvalidClientTokenIdException",
+        "variableSetterType" : "CloudTrailInvalidClientTokenIdException"
+      },
+      "wrapper" : false
+    },
     "CloudWatchLogsDeliveryUnavailableException" : {
       "c2jName" : "CloudWatchLogsDeliveryUnavailableException",
       "customization" : {
@@ -8218,7 +8267,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>The Amazon S3 buckets or AWS Lambda functions that you specify in your event selectors for your trail to log data events. Data events provide information about the resource operations performed on or within a resource itself. These are also known as data plane operations. You can specify up to 250 data resources for a trail.</p> <note> <p>The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, but the total cannot exceed 250 across all selectors.</p> </note> <p>The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket named <code>bucket-1</code>. In this example, the CloudTrail user specified an empty prefix, and the option to log both <code>Read</code> and <code>Write</code> data events.</p> <ol> <li> <p>A user uploads an image file to <code>bucket-1</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation is an Amazon S3 object-level API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the event.</p> </li> <li> <p>A user uploads an object to an Amazon S3 bucket named <code>arn:aws:s3:::bucket-2</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation occurred for an object in an S3 bucket that the CloudTrail user didn't specify for the trail. The trail doesn’t log the event.</p> </li> </ol> <p>The following example demonstrates how logging works when you configure logging of AWS Lambda data events for a Lambda function named <i>MyLambdaFunction</i>, but not for all AWS Lambda functions.</p> <ol> <li> <p>A user runs a script that includes a call to the <i>MyLambdaFunction</i> function and the <i>MyOtherLambdaFunction</i> function.</p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyLambdaFunction</i> is an AWS Lambda API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for <i>MyLambdaFunction</i>, any invocations of that function are logged. The trail processes and logs the event. </p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyOtherLambdaFunction</i> is an AWS Lambda API. Because the CloudTrail user did not specify logging data events for all Lambda functions, the <code>Invoke</code> operation for <i>MyOtherLambdaFunction</i> does not match the function specified for the trail. The trail doesn’t log the event. </p> </li> </ol>",
+      "documentation" : "<p>The Amazon S3 buckets or AWS Lambda functions that you specify in your event selectors for your trail to log data events. Data events provide information about the resource operations performed on or within a resource itself. These are also known as data plane operations. You can specify up to 250 data resources for a trail.</p> <note> <p>The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, but the total cannot exceed 250 across all selectors.</p> <p>If you are using advanced event selectors, the maximum total number of values for all conditions, across all advanced event selectors for the trail, is 500.</p> </note> <p>The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket named <code>bucket-1</code>. In this example, the CloudTrail user specified an empty prefix, and the option to log both <code>Read</code> and <code>Write</code> data events.</p> <ol> <li> <p>A user uploads an image file to <code>bucket-1</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation is an Amazon S3 object-level API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the event.</p> </li> <li> <p>A user uploads an object to an Amazon S3 bucket named <code>arn:aws:s3:::bucket-2</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation occurred for an object in an S3 bucket that the CloudTrail user didn't specify for the trail. The trail doesn’t log the event.</p> </li> </ol> <p>The following example demonstrates how logging works when you configure logging of AWS Lambda data events for a Lambda function named <i>MyLambdaFunction</i>, but not for all AWS Lambda functions.</p> <ol> <li> <p>A user runs a script that includes a call to the <i>MyLambdaFunction</i> function and the <i>MyOtherLambdaFunction</i> function.</p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyLambdaFunction</i> is an AWS Lambda API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for <i>MyLambdaFunction</i>, any invocations of that function are logged. The trail processes and logs the event. </p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyOtherLambdaFunction</i> is an AWS Lambda API. Because the CloudTrail user did not specify logging data events for all Lambda functions, the <code>Invoke</code> operation for <i>MyOtherLambdaFunction</i> does not match the function specified for the trail. The trail doesn’t log the event. </p> </li> </ol>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -11299,7 +11348,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selector for all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.</p> <p>You can configure up to five event selectors for a trail.</p>",
+      "documentation" : "<p>Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selector for all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.</p> <p>You can configure up to five event selectors for a trail.</p> <p>You cannot apply both event selectors and advanced event selectors to a trail.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -12661,12 +12710,12 @@
         "c2jName" : "AdvancedEventSelectors",
         "c2jShape" : "AdvancedEventSelectors",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> The advanced event selectors that are configured for the trail. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAdvancedEventSelectors",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@return The advanced event selectors that are configured for the trail.*/",
         "getterMethodName" : "getAdvancedEventSelectors",
         "getterModel" : {
           "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -12784,7 +12833,7 @@
         "marshallingType" : "LIST",
         "name" : "AdvancedEventSelectors",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+        "setterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.*/",
         "setterMethodName" : "setAdvancedEventSelectors",
         "setterModel" : {
           "timestampFormat" : null,
@@ -12799,13 +12848,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
           "variableName" : "advancedEventSelectors",
           "variableType" : "java.util.List<AdvancedEventSelector>",
-          "documentation" : "",
+          "documentation" : "<p> The advanced event selectors that are configured for the trail. </p>",
           "simpleType" : "List<AdvancedEventSelector>",
           "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
         },
@@ -12816,12 +12865,12 @@
           "c2jName" : "AdvancedEventSelectors",
           "c2jShape" : "AdvancedEventSelectors",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> The advanced event selectors that are configured for the trail. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAdvancedEventSelectors",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@return The advanced event selectors that are configured for the trail.*/",
           "getterMethodName" : "getAdvancedEventSelectors",
           "getterModel" : {
             "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -12939,7 +12988,7 @@
           "marshallingType" : "LIST",
           "name" : "AdvancedEventSelectors",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+          "setterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.*/",
           "setterMethodName" : "setAdvancedEventSelectors",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12954,13 +13003,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> The advanced event selectors that are configured for the trail. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors The advanced event selectors that are configured for the trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
             "variableName" : "advancedEventSelectors",
             "variableType" : "java.util.List<AdvancedEventSelector>",
-            "documentation" : "",
+            "documentation" : "<p> The advanced event selectors that are configured for the trail. </p>",
             "simpleType" : "List<AdvancedEventSelector>",
             "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
           },
@@ -17428,7 +17477,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors or data resources that is not valid. The combination of event selectors and data resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
+      "documentation" : "<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : "InvalidEventSelectorsException",
@@ -23618,12 +23667,12 @@
         "c2jName" : "EventSelectors",
         "c2jShape" : "EventSelectors",
         "deprecated" : false,
-        "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>",
+        "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withEventSelectors",
-        "getterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@return Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.*/",
+        "getterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@return Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.*/",
         "getterMethodName" : "getEventSelectors",
         "getterModel" : {
           "returnType" : "java.util.List<EventSelector>",
@@ -23741,7 +23790,7 @@
         "marshallingType" : "LIST",
         "name" : "EventSelectors",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.*/",
+        "setterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.*/",
         "setterMethodName" : "setEventSelectors",
         "setterModel" : {
           "timestampFormat" : null,
@@ -23756,13 +23805,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEventSelectors(java.util.Collection)} or {@link #withEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEventSelectors(java.util.Collection)} or {@link #withEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<EventSelector>",
           "variableName" : "eventSelectors",
           "variableType" : "java.util.List<EventSelector>",
-          "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>",
+          "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>",
           "simpleType" : "List<EventSelector>",
           "variableSetterType" : "java.util.Collection<EventSelector>"
         },
@@ -23771,12 +23820,12 @@
         "c2jName" : "AdvancedEventSelectors",
         "c2jShape" : "AdvancedEventSelectors",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAdvancedEventSelectors",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@return Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.*/",
         "getterMethodName" : "getAdvancedEventSelectors",
         "getterModel" : {
           "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -23894,7 +23943,7 @@
         "marshallingType" : "LIST",
         "name" : "AdvancedEventSelectors",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+        "setterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.*/",
         "setterMethodName" : "setAdvancedEventSelectors",
         "setterModel" : {
           "timestampFormat" : null,
@@ -23909,13 +23958,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
           "variableName" : "advancedEventSelectors",
           "variableType" : "java.util.List<AdvancedEventSelector>",
-          "documentation" : "",
+          "documentation" : "<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>",
           "simpleType" : "List<AdvancedEventSelector>",
           "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
         },
@@ -23926,12 +23975,12 @@
           "c2jName" : "AdvancedEventSelectors",
           "c2jShape" : "AdvancedEventSelectors",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAdvancedEventSelectors",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@return Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.*/",
           "getterMethodName" : "getAdvancedEventSelectors",
           "getterModel" : {
             "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -24049,7 +24098,7 @@
           "marshallingType" : "LIST",
           "name" : "AdvancedEventSelectors",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+          "setterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.*/",
           "setterMethodName" : "setAdvancedEventSelectors",
           "setterModel" : {
             "timestampFormat" : null,
@@ -24064,13 +24113,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
             "variableName" : "advancedEventSelectors",
             "variableType" : "java.util.List<AdvancedEventSelector>",
-            "documentation" : "",
+            "documentation" : "<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>",
             "simpleType" : "List<AdvancedEventSelector>",
             "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
           },
@@ -24080,12 +24129,12 @@
           "c2jName" : "EventSelectors",
           "c2jShape" : "EventSelectors",
           "deprecated" : false,
-          "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>",
+          "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withEventSelectors",
-          "getterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@return Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.*/",
+          "getterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@return Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.*/",
           "getterMethodName" : "getEventSelectors",
           "getterModel" : {
             "returnType" : "java.util.List<EventSelector>",
@@ -24203,7 +24252,7 @@
           "marshallingType" : "LIST",
           "name" : "EventSelectors",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.*/",
+          "setterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.*/",
           "setterMethodName" : "setEventSelectors",
           "setterModel" : {
             "timestampFormat" : null,
@@ -24218,13 +24267,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEventSelectors(java.util.Collection)} or {@link #withEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEventSelectors(java.util.Collection)} or {@link #withEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param eventSelectors Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<EventSelector>",
             "variableName" : "eventSelectors",
             "variableType" : "java.util.List<EventSelector>",
-            "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>",
+            "documentation" : "<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>",
             "simpleType" : "List<EventSelector>",
             "variableSetterType" : "java.util.Collection<EventSelector>"
           },
@@ -24566,12 +24615,12 @@
         "c2jName" : "AdvancedEventSelectors",
         "c2jShape" : "AdvancedEventSelectors",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p>Specifies the advanced event selectors configured for your trail.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAdvancedEventSelectors",
-        "getterDocumentation" : "/**\n@return */",
+        "getterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@return Specifies the advanced event selectors configured for your trail.*/",
         "getterMethodName" : "getAdvancedEventSelectors",
         "getterModel" : {
           "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -24689,7 +24738,7 @@
         "marshallingType" : "LIST",
         "name" : "AdvancedEventSelectors",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+        "setterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.*/",
         "setterMethodName" : "setAdvancedEventSelectors",
         "setterModel" : {
           "timestampFormat" : null,
@@ -24704,13 +24753,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
           "variableName" : "advancedEventSelectors",
           "variableType" : "java.util.List<AdvancedEventSelector>",
-          "documentation" : "",
+          "documentation" : "<p>Specifies the advanced event selectors configured for your trail.</p>",
           "simpleType" : "List<AdvancedEventSelector>",
           "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
         },
@@ -24721,12 +24770,12 @@
           "c2jName" : "AdvancedEventSelectors",
           "c2jShape" : "AdvancedEventSelectors",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p>Specifies the advanced event selectors configured for your trail.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAdvancedEventSelectors",
-          "getterDocumentation" : "/**\n@return */",
+          "getterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@return Specifies the advanced event selectors configured for your trail.*/",
           "getterMethodName" : "getAdvancedEventSelectors",
           "getterModel" : {
             "returnType" : "java.util.List<AdvancedEventSelector>",
@@ -24844,7 +24893,7 @@
           "marshallingType" : "LIST",
           "name" : "AdvancedEventSelectors",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param advancedEventSelectors */",
+          "setterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.*/",
           "setterMethodName" : "setAdvancedEventSelectors",
           "setterModel" : {
             "timestampFormat" : null,
@@ -24859,13 +24908,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Specifies the advanced event selectors configured for your trail.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdvancedEventSelectors(java.util.Collection)} or {@link #withAdvancedEventSelectors(java.util.Collection)} if you want to override the existing values.</p>\n@param advancedEventSelectors Specifies the advanced event selectors configured for your trail.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<AdvancedEventSelector>",
             "variableName" : "advancedEventSelectors",
             "variableType" : "java.util.List<AdvancedEventSelector>",
-            "documentation" : "",
+            "documentation" : "<p>Specifies the advanced event selectors configured for your trail.</p>",
             "simpleType" : "List<AdvancedEventSelector>",
             "variableSetterType" : "java.util.Collection<AdvancedEventSelector>"
           },
diff --git a/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-model.json b/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-model.json
index 99868dd2b6bc..4baeb106d09a 100644
--- a/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/cloudtrail-2013-11-01-model.json
@@ -70,7 +70,8 @@
         {"shape":"InsufficientDependencyServiceAccessPermissionException"},
         {"shape":"NotOrganizationMasterAccountException"},
         {"shape":"OrganizationsNotInUseException"},
-        {"shape":"OrganizationNotInAllFeaturesModeException"}
+        {"shape":"OrganizationNotInAllFeaturesModeException"},
+        {"shape":"CloudTrailInvalidClientTokenIdException"}
       ],
       "documentation":"<p>Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. </p>",
       "idempotent":true
@@ -270,7 +271,7 @@
         {"shape":"NotOrganizationMasterAccountException"},
         {"shape":"InsufficientDependencyServiceAccessPermissionException"}
       ],
-      "documentation":"<p>Configures an event selector for your trail. Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. </p> <p>When an event occurs in your account, CloudTrail evaluates the event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. </p> <p>Example</p> <ol> <li> <p>You create an event selector for a trail and specify that you want write-only events.</p> </li> <li> <p>The EC2 <code>GetConsoleOutput</code> and <code>RunInstances</code> API operations occur in your account.</p> </li> <li> <p>CloudTrail evaluates whether the events match your event selectors.</p> </li> <li> <p>The <code>RunInstances</code> is a write-only event and it matches your event selector. The trail logs the event.</p> </li> <li> <p>The <code>GetConsoleOutput</code> is a read-only event but it doesn't match your event selector. The trail doesn't log the event. </p> </li> </ol> <p>The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> is thrown.</p> <p>You can configure up to five event selectors for each trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html\">Logging Data and Management Events for Trails </a> and <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html\">Limits in AWS CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.</p>",
+      "documentation":"<p>Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events.</p> <p>When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. </p> <p>Example</p> <ol> <li> <p>You create an event selector for a trail and specify that you want write-only events.</p> </li> <li> <p>The EC2 <code>GetConsoleOutput</code> and <code>RunInstances</code> API operations occur in your account.</p> </li> <li> <p>CloudTrail evaluates whether the events match your event selectors.</p> </li> <li> <p>The <code>RunInstances</code> is a write-only event and it matches your event selector. The trail logs the event.</p> </li> <li> <p>The <code>GetConsoleOutput</code> is a read-only event that doesn't match your event selector. The trail doesn't log the event. </p> </li> </ol> <p>The <code>PutEventSelectors</code> operation must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> exception is thrown.</p> <p>You can configure up to five event selectors for each trail. For more information, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html\">Logging data and management events for trails </a> and <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html\">Quotas in AWS CloudTrail</a> in the <i>AWS CloudTrail User Guide</i>.</p> <p>You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.</p>",
       "idempotent":true
     },
     "PutInsightSelectors":{
@@ -391,7 +392,8 @@
         {"shape":"InsufficientDependencyServiceAccessPermissionException"},
         {"shape":"OrganizationsNotInUseException"},
         {"shape":"NotOrganizationMasterAccountException"},
-        {"shape":"OrganizationNotInAllFeaturesModeException"}
+        {"shape":"OrganizationNotInAllFeaturesModeException"},
+        {"shape":"CloudTrailInvalidClientTokenIdException"}
       ],
       "documentation":"<p>Updates the settings that specify delivery of log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. <code>UpdateTrail</code> must be called from the region in which the trail was created; otherwise, an <code>InvalidHomeRegionException</code> is thrown.</p>",
       "idempotent":true
@@ -421,14 +423,18 @@
     },
     "AdvancedEventSelector":{
       "type":"structure",
-      "required":[
-        "Name",
-        "FieldSelectors"
-      ],
+      "required":["FieldSelectors"],
       "members":{
-        "Name":{"shape":"SelectorName"},
-        "FieldSelectors":{"shape":"AdvancedFieldSelectors"}
-      }
+        "Name":{
+          "shape":"SelectorName",
+          "documentation":"<p>An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".</p>"
+        },
+        "FieldSelectors":{
+          "shape":"AdvancedFieldSelectors",
+          "documentation":"<p>Contains all selector statements in an advanced event selector.</p>"
+        }
+      },
+      "documentation":"<p>Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>.</p> <ul> <li> <p> <code>readOnly</code> </p> </li> <li> <p> <code>eventSource</code> </p> </li> <li> <p> <code>eventName</code> </p> </li> <li> <p> <code>eventCategory</code> </p> </li> <li> <p> <code>resources.type</code> </p> </li> <li> <p> <code>resources.ARN</code> </p> </li> </ul> <p>You cannot apply both event selectors and advanced event selectors to a trail.</p>"
     },
     "AdvancedEventSelectors":{
       "type":"list",
@@ -438,14 +444,36 @@
       "type":"structure",
       "required":["Field"],
       "members":{
-        "Field":{"shape":"SelectorField"},
-        "Equals":{"shape":"Operator"},
-        "StartsWith":{"shape":"Operator"},
-        "EndsWith":{"shape":"Operator"},
-        "NotEquals":{"shape":"Operator"},
-        "NotStartsWith":{"shape":"Operator"},
-        "NotEndsWith":{"shape":"Operator"}
-      }
+        "Field":{
+          "shape":"SelectorField",
+          "documentation":"<p> A field in an event record on which to filter events to be logged. Supported fields include <code>readOnly</code>, <code>eventCategory</code>, <code>eventSource</code> (for management events), <code>eventName</code>, <code>resources.type</code>, and <code>resources.ARN</code>. </p> <ul> <li> <p> <b> <code>readOnly</code> </b> - Optional. Can be set to <code>Equals</code> a value of <code>true</code> or <code>false</code>. A value of <code>false</code> logs both <code>read</code> and <code>write</code> events.</p> </li> <li> <p> <b> <code>eventSource</code> </b> - For filtering management events only. This can be set only to <code>NotEquals</code> <code>kms.amazonaws.com</code>.</p> </li> <li> <p> <b> <code>eventName</code> </b> - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as <code>PutBucket</code>. You can have multiple values for this field, separated by commas.</p> </li> <li> <p> <b> <code>eventCategory</code> </b> - This is required. It must be set to <code>Equals</code>, and the value must be <code>Management</code> or <code>Data</code>.</p> </li> <li> <p> <b> <code>resources.type</code> </b> - This field is required. <code>resources.type</code> can only use the <code>Equals</code> operator, and the value can be one of the following: <code>AWS::S3::Object</code> or <code>AWS::Lambda::Function</code>. You can have only one <code>resources.type</code> field per selector. To log data events on more than one resource type, add another selector.</p> </li> <li> <p> <b> <code>resources.ARN</code> </b> - You can use any operator with resources.ARN, but if you use <code>Equals</code> or <code>NotEquals</code>, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals <code>AWS::S3::Object</code>, the ARN must be in one of the following formats. The trailing slash is intentional; do not exclude it.</p> <ul> <li> <p> <code>arn:partition:s3:::bucket_name/</code> </p> </li> <li> <p> <code>arn:partition:s3:::bucket_name/object_or_file_name/</code> </p> </li> </ul> <p>When resources.type equals <code>AWS::Lambda::Function</code>, and the operator is set to <code>Equals</code> or <code>NotEquals</code>, the ARN must be in the following format:</p> <ul> <li> <p> <code>arn:partition:lambda:region:account_ID:function:function_name</code> </p> </li> </ul> </li> </ul>"
+        },
+        "Equals":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that includes events that match the exact value of the event record field specified as the value of <code>Field</code>. This is the only valid operator that you can use with the <code>readOnly</code>, <code>eventCategory</code>, and <code>resources.type</code> fields. </p>"
+        },
+        "StartsWith":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that includes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>"
+        },
+        "EndsWith":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that includes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>"
+        },
+        "NotEquals":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that excludes events that match the exact value of the event record field specified as the value of <code>Field</code>. </p>"
+        },
+        "NotStartsWith":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that excludes events that match the first few characters of the event record field specified as the value of <code>Field</code>. </p>"
+        },
+        "NotEndsWith":{
+          "shape":"Operator",
+          "documentation":"<p> An operator that excludes events that match the last few characters of the event record field specified as the value of <code>Field</code>. </p>"
+        }
+      },
+      "documentation":"<p>A single selector statement in an advanced event selector.</p>"
     },
     "AdvancedFieldSelectors":{
       "type":"list",
@@ -468,6 +496,13 @@
       "documentation":"<p>This exception is thrown when trusted access has not been enabled between AWS CloudTrail and AWS Organizations. For more information, see <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html\">Enabling Trusted Access with Other AWS Services</a> and <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html\">Prepare For Creating a Trail For Your Organization</a>. </p>",
       "exception":true
     },
+    "CloudTrailInvalidClientTokenIdException":{
+      "type":"structure",
+      "members":{
+      },
+      "documentation":"<p>This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended AWS account.</p>",
+      "exception":true
+    },
     "CloudWatchLogsDeliveryUnavailableException":{
       "type":"structure",
       "members":{
@@ -601,7 +636,7 @@
           "documentation":"<p>An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.</p> <ul> <li> <p>To log data events for all objects in all S3 buckets in your AWS account, specify the prefix as <code>arn:aws:s3:::</code>. </p> <note> <p>This will also enable logging of data event activity performed by any user or role in your AWS account, even if that activity is performed on a bucket that belongs to another AWS account. </p> </note> </li> <li> <p>To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as <code>arn:aws:s3:::bucket-1/</code>. The trail logs data events for all objects in this S3 bucket.</p> </li> <li> <p>To log data events for specific objects, specify the S3 bucket and object prefix such as <code>arn:aws:s3:::bucket-1/example-images</code>. The trail logs data events for objects in this S3 bucket that match the prefix.</p> </li> <li> <p>To log data events for all functions in your AWS account, specify the prefix as <code>arn:aws:lambda</code>.</p> <note> <p>This will also enable logging of <code>Invoke</code> activity performed by any user or role in your AWS account, even if that activity is performed on a function that belongs to another AWS account. </p> </note> </li> <li> <p>To log data events for a specific Lambda function, specify the function ARN.</p> <note> <p>Lambda function ARNs are exact. For example, if you specify a function ARN <i>arn:aws:lambda:us-west-2:111111111111:function:helloworld</i>, data events will only be logged for <i>arn:aws:lambda:us-west-2:111111111111:function:helloworld</i>. They will not be logged for <i>arn:aws:lambda:us-west-2:111111111111:function:helloworld2</i>.</p> </note> </li> </ul>"
         }
       },
-      "documentation":"<p>The Amazon S3 buckets or AWS Lambda functions that you specify in your event selectors for your trail to log data events. Data events provide information about the resource operations performed on or within a resource itself. These are also known as data plane operations. You can specify up to 250 data resources for a trail.</p> <note> <p>The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, but the total cannot exceed 250 across all selectors.</p> </note> <p>The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket named <code>bucket-1</code>. In this example, the CloudTrail user specified an empty prefix, and the option to log both <code>Read</code> and <code>Write</code> data events.</p> <ol> <li> <p>A user uploads an image file to <code>bucket-1</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation is an Amazon S3 object-level API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the event.</p> </li> <li> <p>A user uploads an object to an Amazon S3 bucket named <code>arn:aws:s3:::bucket-2</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation occurred for an object in an S3 bucket that the CloudTrail user didn't specify for the trail. The trail doesn’t log the event.</p> </li> </ol> <p>The following example demonstrates how logging works when you configure logging of AWS Lambda data events for a Lambda function named <i>MyLambdaFunction</i>, but not for all AWS Lambda functions.</p> <ol> <li> <p>A user runs a script that includes a call to the <i>MyLambdaFunction</i> function and the <i>MyOtherLambdaFunction</i> function.</p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyLambdaFunction</i> is an AWS Lambda API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for <i>MyLambdaFunction</i>, any invocations of that function are logged. The trail processes and logs the event. </p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyOtherLambdaFunction</i> is an AWS Lambda API. Because the CloudTrail user did not specify logging data events for all Lambda functions, the <code>Invoke</code> operation for <i>MyOtherLambdaFunction</i> does not match the function specified for the trail. The trail doesn’t log the event. </p> </li> </ol>"
+      "documentation":"<p>The Amazon S3 buckets or AWS Lambda functions that you specify in your event selectors for your trail to log data events. Data events provide information about the resource operations performed on or within a resource itself. These are also known as data plane operations. You can specify up to 250 data resources for a trail.</p> <note> <p>The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, but the total cannot exceed 250 across all selectors.</p> <p>If you are using advanced event selectors, the maximum total number of values for all conditions, across all advanced event selectors for the trail, is 500.</p> </note> <p>The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket named <code>bucket-1</code>. In this example, the CloudTrail user specified an empty prefix, and the option to log both <code>Read</code> and <code>Write</code> data events.</p> <ol> <li> <p>A user uploads an image file to <code>bucket-1</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation is an Amazon S3 object-level API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the event.</p> </li> <li> <p>A user uploads an object to an Amazon S3 bucket named <code>arn:aws:s3:::bucket-2</code>.</p> </li> <li> <p>The <code>PutObject</code> API operation occurred for an object in an S3 bucket that the CloudTrail user didn't specify for the trail. The trail doesn’t log the event.</p> </li> </ol> <p>The following example demonstrates how logging works when you configure logging of AWS Lambda data events for a Lambda function named <i>MyLambdaFunction</i>, but not for all AWS Lambda functions.</p> <ol> <li> <p>A user runs a script that includes a call to the <i>MyLambdaFunction</i> function and the <i>MyOtherLambdaFunction</i> function.</p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyLambdaFunction</i> is an AWS Lambda API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for <i>MyLambdaFunction</i>, any invocations of that function are logged. The trail processes and logs the event. </p> </li> <li> <p>The <code>Invoke</code> API operation on <i>MyOtherLambdaFunction</i> is an AWS Lambda API. Because the CloudTrail user did not specify logging data events for all Lambda functions, the <code>Invoke</code> operation for <i>MyOtherLambdaFunction</i> does not match the function specified for the trail. The trail doesn’t log the event. </p> </li> </ol>"
     },
     "DataResourceValues":{
       "type":"list",
@@ -719,7 +754,7 @@
           "documentation":"<p>An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by containing <code>\"kms.amazonaws.com\"</code>. By default, <code>ExcludeManagementEventSources</code> is empty, and AWS KMS events are included in events that are logged to your trail. </p>"
         }
       },
-      "documentation":"<p>Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selector for all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.</p> <p>You can configure up to five event selectors for a trail.</p>"
+      "documentation":"<p>Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selector for all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.</p> <p>You can configure up to five event selectors for a trail.</p> <p>You cannot apply both event selectors and advanced event selectors to a trail.</p>"
     },
     "EventSelectors":{
       "type":"list",
@@ -754,7 +789,10 @@
           "shape":"EventSelectors",
           "documentation":"<p>The event selectors that are configured for the trail.</p>"
         },
-        "AdvancedEventSelectors":{"shape":"AdvancedEventSelectors"}
+        "AdvancedEventSelectors":{
+          "shape":"AdvancedEventSelectors",
+          "documentation":"<p> The advanced event selectors that are configured for the trail. </p>"
+        }
       }
     },
     "GetInsightSelectorsRequest":{
@@ -959,7 +997,7 @@
       "type":"structure",
       "members":{
       },
-      "documentation":"<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors or data resources that is not valid. The combination of event selectors and data resources is not valid. A trail can have up to 5 event selectors. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
+      "documentation":"<p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p> <p>You can:</p> <ul> <li> <p>Specify a valid number of event selectors (1 to 5) for a trail.</p> </li> <li> <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p> </li> <li> <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p> </li> <li> <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is invalid.</p> </li> </ul>",
       "exception":true
     },
     "InvalidHomeRegionException":{
@@ -1332,9 +1370,12 @@
         },
         "EventSelectors":{
           "shape":"EventSelectors",
-          "documentation":"<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail.</p>"
+          "documentation":"<p>Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either <code>EventSelectors</code> or <code>AdvancedEventSelectors</code> in a <code>PutEventSelectors</code> request, but not both. If you apply <code>EventSelectors</code> to a trail, any existing <code>AdvancedEventSelectors</code> are overwritten.</p>"
         },
-        "AdvancedEventSelectors":{"shape":"AdvancedEventSelectors"}
+        "AdvancedEventSelectors":{
+          "shape":"AdvancedEventSelectors",
+          "documentation":"<p> Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either <code>AdvancedEventSelectors</code> or <code>EventSelectors</code>, but not both. If you apply <code>AdvancedEventSelectors</code> to a trail, any existing <code>EventSelectors</code> are overwritten. For more information about advanced event selectors, see <a href=\"https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html\">Logging data events for trails</a> in the <i>AWS CloudTrail User Guide</i>. </p>"
+        }
       }
     },
     "PutEventSelectorsResponse":{
@@ -1348,7 +1389,10 @@
           "shape":"EventSelectors",
           "documentation":"<p>Specifies the event selectors configured for your trail.</p>"
         },
-        "AdvancedEventSelectors":{"shape":"AdvancedEventSelectors"}
+        "AdvancedEventSelectors":{
+          "shape":"AdvancedEventSelectors",
+          "documentation":"<p>Specifies the advanced event selectors configured for your trail.</p>"
+        }
       }
     },
     "PutInsightSelectorsRequest":{
@@ -1481,8 +1525,8 @@
     "SelectorName":{
       "type":"string",
       "max":1000,
-      "min":1,
-      "pattern":".+"
+      "min":0,
+      "pattern":".*"
     },
     "StartLoggingRequest":{
       "type":"structure",
diff --git a/aws-java-sdk-models/src/main/resources/models/codestar-connections-2019-12-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/codestar-connections-2019-12-01-intermediate.json
index 7c84e312b19e..5ad7dbc2a88e 100644
--- a/aws-java-sdk-models/src/main/resources/models/codestar-connections-2019-12-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/codestar-connections-2019-12-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/comprehendmedical-2018-10-30-intermediate.json b/aws-java-sdk-models/src/main/resources/models/comprehendmedical-2018-10-30-intermediate.json
index c60fbd493fc2..0f2caf64de6a 100644
--- a/aws-java-sdk-models/src/main/resources/models/comprehendmedical-2018-10-30-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/comprehendmedical-2018-10-30-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/compute-optimizer-2019-11-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/compute-optimizer-2019-11-01-intermediate.json
index 0afad48ee0ce..15e0cb7cfae2 100644
--- a/aws-java-sdk-models/src/main/resources/models/compute-optimizer-2019-11-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/compute-optimizer-2019-11-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/connectparticipant-2018-09-07-intermediate.json b/aws-java-sdk-models/src/main/resources/models/connectparticipant-2018-09-07-intermediate.json
index ddd05232cf21..9fb0ca706d38 100644
--- a/aws-java-sdk-models/src/main/resources/models/connectparticipant-2018-09-07-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/connectparticipant-2018-09-07-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/customer-profiles-2020-08-15-intermediate.json b/aws-java-sdk-models/src/main/resources/models/customer-profiles-2020-08-15-intermediate.json
index e64d0ceda0fc..7887cd15337b 100644
--- a/aws-java-sdk-models/src/main/resources/models/customer-profiles-2020-08-15-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/customer-profiles-2020-08-15-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/data.jobs.iot-2017-09-29-intermediate.json b/aws-java-sdk-models/src/main/resources/models/data.jobs.iot-2017-09-29-intermediate.json
index f5a6f3985400..d18de30c6896 100644
--- a/aws-java-sdk-models/src/main/resources/models/data.jobs.iot-2017-09-29-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/data.jobs.iot-2017-09-29-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/dataexchange-2017-07-25-intermediate.json b/aws-java-sdk-models/src/main/resources/models/dataexchange-2017-07-25-intermediate.json
index 9b79fbd399e3..8defa0c26597 100644
--- a/aws-java-sdk-models/src/main/resources/models/dataexchange-2017-07-25-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/dataexchange-2017-07-25-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/dax-2017-04-19-intermediate.json b/aws-java-sdk-models/src/main/resources/models/dax-2017-04-19-intermediate.json
index b3292438e5af..f7bf9c66fcf9 100644
--- a/aws-java-sdk-models/src/main/resources/models/dax-2017-04-19-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/dax-2017-04-19-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : {
       "DescribeEventsRequest" : [ "SourceType" ],
       "Event" : [ "SourceType" ],
diff --git a/aws-java-sdk-models/src/main/resources/models/devices.iot1click-2018-05-14-intermediate.json b/aws-java-sdk-models/src/main/resources/models/devices.iot1click-2018-05-14-intermediate.json
index 41da81bff4d2..33719607b461 100644
--- a/aws-java-sdk-models/src/main/resources/models/devices.iot1click-2018-05-14-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/devices.iot1click-2018-05-14-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/dlm-2018-01-12-intermediate.json b/aws-java-sdk-models/src/main/resources/models/dlm-2018-01-12-intermediate.json
index c8fd47b85930..b24d7431bf5a 100644
--- a/aws-java-sdk-models/src/main/resources/models/dlm-2018-01-12-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/dlm-2018-01-12-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/docdb-2014-10-31-intermediate.json b/aws-java-sdk-models/src/main/resources/models/docdb-2014-10-31-intermediate.json
index 877c1a8d6d12..b4bb7d674ec5 100644
--- a/aws-java-sdk-models/src/main/resources/models/docdb-2014-10-31-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/docdb-2014-10-31-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/ebs-2019-11-02-intermediate.json b/aws-java-sdk-models/src/main/resources/models/ebs-2019-11-02-intermediate.json
index 03c065da6baf..c7d83c526e0f 100644
--- a/aws-java-sdk-models/src/main/resources/models/ebs-2019-11-02-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/ebs-2019-11-02-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/ec2-instance-connect-2018-04-02-intermediate.json b/aws-java-sdk-models/src/main/resources/models/ec2-instance-connect-2018-04-02-intermediate.json
index 8ca9e075ec43..3b83783c6551 100644
--- a/aws-java-sdk-models/src/main/resources/models/ec2-instance-connect-2018-04-02-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/ec2-instance-connect-2018-04-02-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientConstructors", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/ecr-public-2020-10-30-intermediate.json b/aws-java-sdk-models/src/main/resources/models/ecr-public-2020-10-30-intermediate.json
index 9dbb7560c53e..794edb616036 100644
--- a/aws-java-sdk-models/src/main/resources/models/ecr-public-2020-10-30-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/ecr-public-2020-10-30-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/eks-2017-11-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/eks-2017-11-01-intermediate.json
index bfde78a582b5..063dc557f414 100644
--- a/aws-java-sdk-models/src/main/resources/models/eks-2017-11-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/eks-2017-11-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/emr-containers-2020-10-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/emr-containers-2020-10-01-intermediate.json
index ca7741b92ce4..6aed9a96d1c6 100644
--- a/aws-java-sdk-models/src/main/resources/models/emr-containers-2020-10-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/emr-containers-2020-10-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientConstructors", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/entitlement.marketplace-2017-01-11-intermediate.json b/aws-java-sdk-models/src/main/resources/models/entitlement.marketplace-2017-01-11-intermediate.json
index 39a6199b789b..e05d041bae40 100644
--- a/aws-java-sdk-models/src/main/resources/models/entitlement.marketplace-2017-01-11-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/entitlement.marketplace-2017-01-11-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/eventbridge-2015-10-07-intermediate.json b/aws-java-sdk-models/src/main/resources/models/eventbridge-2015-10-07-intermediate.json
index 182969a9447d..01ccd381a839 100644
--- a/aws-java-sdk-models/src/main/resources/models/eventbridge-2015-10-07-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/eventbridge-2015-10-07-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/fsx-2018-03-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/fsx-2018-03-01-intermediate.json
index a9bf14656e78..d42fc555a402 100644
--- a/aws-java-sdk-models/src/main/resources/models/fsx-2018-03-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/fsx-2018-03-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/globalaccelerator-2018-08-08-intermediate.json b/aws-java-sdk-models/src/main/resources/models/globalaccelerator-2018-08-08-intermediate.json
index 45f7573394f6..d8880be315cc 100644
--- a/aws-java-sdk-models/src/main/resources/models/globalaccelerator-2018-08-08-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/globalaccelerator-2018-08-08-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-intermediate.json b/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-intermediate.json
index 43685327508f..a1ed8633cb83 100644
--- a/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-intermediate.json
@@ -92,7 +92,7 @@
       "asyncReturnType" : "AcceptInvitationResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Accepts the invitation to be monitored by a master GuardDuty account.</p>",
+      "documentation" : "<p>Accepts the invitation to be monitored by a GuardDuty administrator account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -133,7 +133,7 @@
       "asyncReturnType" : "ArchiveFindingsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Archives GuardDuty findings that are specified by the list of finding IDs.</p> <note> <p>Only the master account can archive findings. Member accounts don't have permission to archive findings from their accounts.</p> </note>",
+      "documentation" : "<p>Archives GuardDuty findings that are specified by the list of finding IDs.</p> <note> <p>Only the administrator account can archive findings. Member accounts don't have permission to archive findings from their accounts.</p> </note>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -256,7 +256,7 @@
       "asyncReturnType" : "CreateIPSetResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are included in IPSets. Only users from the master account can use this operation.</p>",
+      "documentation" : "<p>Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use this operation.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -297,7 +297,7 @@
       "asyncReturnType" : "CreateMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Creates member accounts of the current AWS account by specifying a list of AWS account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.</p> <p>When using <code>Create Members</code> as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization master account, which must enable GuardDuty prior to being added as a member.</p> <p>If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using <a href=\"https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html\"> <code>Invite Members</code> </a>.</p>",
+      "documentation" : "<p>Creates member accounts of the current AWS account by specifying a list of AWS account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.</p> <p>When using <code>Create Members</code> as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization delegated administrator account, which must enable GuardDuty prior to being added as a member.</p> <p>If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using <a href=\"https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html\"> <code>Invite Members</code> </a>.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -420,7 +420,7 @@
       "asyncReturnType" : "CreateThreatIntelSetResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. Only users of the master account can use this operation.</p>",
+      "documentation" : "<p>Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. Only users of the administrator account can use this operation.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -666,7 +666,7 @@
       "asyncReturnType" : "DeleteMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>",
+      "documentation" : "<p>Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -912,7 +912,7 @@
       "asyncReturnType" : "DisassociateFromMasterAccountResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Disassociates the current GuardDuty member account from its master account.</p>",
+      "documentation" : "<p>Disassociates the current GuardDuty member account from its administrator account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -953,7 +953,7 @@
       "asyncReturnType" : "DisassociateMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>",
+      "documentation" : "<p>Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1281,7 +1281,7 @@
       "asyncReturnType" : "GetMasterAccountResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Provides the details for the GuardDuty master account associated with the current GuardDuty member account.</p>",
+      "documentation" : "<p>Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1363,7 +1363,7 @@
       "asyncReturnType" : "GetMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>",
+      "documentation" : "<p>Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account IDs.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1486,7 +1486,7 @@
       "asyncReturnType" : "InviteMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the master account.</p>",
+      "documentation" : "<p>Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty administrator account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1650,7 +1650,7 @@
       "asyncReturnType" : "ListIPSetsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the IPSets returned are the IPSets from the associated master account.</p>",
+      "documentation" : "<p>Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the IPSets returned are the IPSets from the associated administrator account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1732,7 +1732,7 @@
       "asyncReturnType" : "ListMembersResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Lists details about all member accounts for the current GuardDuty master account.</p>",
+      "documentation" : "<p>Lists details about all member accounts for the current GuardDuty administrator account.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1896,7 +1896,7 @@
       "asyncReturnType" : "ListThreatIntelSetsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the ThreatIntelSets associated with the master account are returned.</p>",
+      "documentation" : "<p>Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the ThreatIntelSets associated with the administrator account are returned.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -2565,12 +2565,12 @@
         "c2jName" : "MasterId",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>",
+        "documentation" : "<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMasterId",
-        "getterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@return The account ID of the master GuardDuty account whose invitation you're accepting.*/",
+        "getterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@return The account ID of the GuardDuty administrator account whose invitation you're accepting.*/",
         "getterMethodName" : "getMasterId",
         "getterModel" : {
           "returnType" : "String",
@@ -2604,7 +2604,7 @@
         "marshallingType" : "STRING",
         "name" : "MasterId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.*/",
+        "setterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.*/",
         "setterMethodName" : "setMasterId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2619,13 +2619,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "masterId",
           "variableType" : "String",
-          "documentation" : "<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>",
+          "documentation" : "<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -2634,12 +2634,12 @@
         "c2jName" : "InvitationId",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The value that is used to validate the master account to the member account.</p>",
+        "documentation" : "<p>The value that is used to validate the administrator account to the member account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withInvitationId",
-        "getterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@return The value that is used to validate the master account to the member account.*/",
+        "getterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@return The value that is used to validate the administrator account to the member account.*/",
         "getterMethodName" : "getInvitationId",
         "getterModel" : {
           "returnType" : "String",
@@ -2673,7 +2673,7 @@
         "marshallingType" : "STRING",
         "name" : "InvitationId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.*/",
+        "setterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.*/",
         "setterMethodName" : "setInvitationId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -2688,13 +2688,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "invitationId",
           "variableType" : "String",
-          "documentation" : "<p>The value that is used to validate the master account to the member account.</p>",
+          "documentation" : "<p>The value that is used to validate the administrator account to the member account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -2775,12 +2775,12 @@
           "c2jName" : "InvitationId",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The value that is used to validate the master account to the member account.</p>",
+          "documentation" : "<p>The value that is used to validate the administrator account to the member account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withInvitationId",
-          "getterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@return The value that is used to validate the master account to the member account.*/",
+          "getterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@return The value that is used to validate the administrator account to the member account.*/",
           "getterMethodName" : "getInvitationId",
           "getterModel" : {
             "returnType" : "String",
@@ -2814,7 +2814,7 @@
           "marshallingType" : "STRING",
           "name" : "InvitationId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.*/",
+          "setterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.*/",
           "setterMethodName" : "setInvitationId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2829,13 +2829,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The value that is used to validate the master account to the member account.</p>\n@param invitationId The value that is used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The value that is used to validate the administrator account to the member account.</p>\n@param invitationId The value that is used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "invitationId",
             "variableType" : "String",
-            "documentation" : "<p>The value that is used to validate the master account to the member account.</p>",
+            "documentation" : "<p>The value that is used to validate the administrator account to the member account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -2845,12 +2845,12 @@
           "c2jName" : "MasterId",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>",
+          "documentation" : "<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMasterId",
-          "getterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@return The account ID of the master GuardDuty account whose invitation you're accepting.*/",
+          "getterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@return The account ID of the GuardDuty administrator account whose invitation you're accepting.*/",
           "getterMethodName" : "getMasterId",
           "getterModel" : {
             "returnType" : "String",
@@ -2884,7 +2884,7 @@
           "marshallingType" : "STRING",
           "name" : "MasterId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.*/",
+          "setterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.*/",
           "setterMethodName" : "setMasterId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2899,13 +2899,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>\n@param masterId The account ID of the master GuardDuty account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>\n@param masterId The account ID of the GuardDuty administrator account whose invitation you're accepting.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "masterId",
             "variableType" : "String",
-            "documentation" : "<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>",
+            "documentation" : "<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -11749,12 +11749,12 @@
         "c2jName" : "FindingPublishingFrequency",
         "c2jShape" : "FindingPublishingFrequency",
         "deprecated" : false,
-        "documentation" : "<p>An enum value that specifies how frequently updated findings are exported.</p>",
+        "documentation" : "<p>A value that specifies how frequently updated findings are exported.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : "FindingPublishingFrequency",
-        "fluentSetterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
+        "fluentSetterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
         "fluentSetterMethodName" : "withFindingPublishingFrequency",
-        "getterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@return An enum value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
+        "getterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@return A value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
         "getterMethodName" : "getFindingPublishingFrequency",
         "getterModel" : {
           "returnType" : "String",
@@ -11788,7 +11788,7 @@
         "marshallingType" : "STRING",
         "name" : "FindingPublishingFrequency",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
+        "setterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
         "setterMethodName" : "setFindingPublishingFrequency",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11803,13 +11803,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
+        "varargSetterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "findingPublishingFrequency",
           "variableType" : "String",
-          "documentation" : "<p>An enum value that specifies how frequently updated findings are exported.</p>",
+          "documentation" : "<p>A value that specifies how frequently updated findings are exported.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -11818,12 +11818,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "DataSourceConfigurations",
         "deprecated" : false,
-        "documentation" : "<p>An object that describes which data sources will be enabled for the detector.</p>",
+        "documentation" : "<p>Describes which data sources will be enabled for the detector.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@return An object that describes which data sources will be enabled for the detector.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@return Describes which data sources will be enabled for the detector.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "DataSourceConfigurations",
@@ -11857,7 +11857,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11872,13 +11872,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "DataSourceConfigurations",
           "variableName" : "dataSources",
           "variableType" : "DataSourceConfigurations",
-          "documentation" : "<p>An object that describes which data sources will be enabled for the detector.</p>",
+          "documentation" : "<p>Describes which data sources will be enabled for the detector.</p>",
           "simpleType" : "DataSourceConfigurations",
           "variableSetterType" : "DataSourceConfigurations"
         },
@@ -12112,12 +12112,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "DataSourceConfigurations",
           "deprecated" : false,
-          "documentation" : "<p>An object that describes which data sources will be enabled for the detector.</p>",
+          "documentation" : "<p>Describes which data sources will be enabled for the detector.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@return An object that describes which data sources will be enabled for the detector.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@return Describes which data sources will be enabled for the detector.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "DataSourceConfigurations",
@@ -12151,7 +12151,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12166,13 +12166,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object that describes which data sources will be enabled for the detector.</p>\n@param dataSources An object that describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources will be enabled for the detector.</p>\n@param dataSources Describes which data sources will be enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "DataSourceConfigurations",
             "variableName" : "dataSources",
             "variableType" : "DataSourceConfigurations",
-            "documentation" : "<p>An object that describes which data sources will be enabled for the detector.</p>",
+            "documentation" : "<p>Describes which data sources will be enabled for the detector.</p>",
             "simpleType" : "DataSourceConfigurations",
             "variableSetterType" : "DataSourceConfigurations"
           },
@@ -12252,12 +12252,12 @@
           "c2jName" : "FindingPublishingFrequency",
           "c2jShape" : "FindingPublishingFrequency",
           "deprecated" : false,
-          "documentation" : "<p>An enum value that specifies how frequently updated findings are exported.</p>",
+          "documentation" : "<p>A value that specifies how frequently updated findings are exported.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : "FindingPublishingFrequency",
-          "fluentSetterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
+          "fluentSetterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
           "fluentSetterMethodName" : "withFindingPublishingFrequency",
-          "getterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@return An enum value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
+          "getterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@return A value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
           "getterMethodName" : "getFindingPublishingFrequency",
           "getterModel" : {
             "returnType" : "String",
@@ -12291,7 +12291,7 @@
           "marshallingType" : "STRING",
           "name" : "FindingPublishingFrequency",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
+          "setterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@see FindingPublishingFrequency*/",
           "setterMethodName" : "setFindingPublishingFrequency",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12306,13 +12306,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An enum value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency An enum value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
+          "varargSetterDocumentation" : "/**<p>A value that specifies how frequently updated findings are exported.</p>\n@param findingPublishingFrequency A value that specifies how frequently updated findings are exported.\n@return Returns a reference to this object so that method calls can be chained together.\n@see FindingPublishingFrequency*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "findingPublishingFrequency",
             "variableType" : "String",
-            "documentation" : "<p>An enum value that specifies how frequently updated findings are exported.</p>",
+            "documentation" : "<p>A value that specifies how frequently updated findings are exported.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -12707,12 +12707,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>",
+        "documentation" : "<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@return The unique ID of the detector of the GuardDuty account that you want to create a filter for.*/",
+        "getterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@return The ID of the detector belonging to the GuardDuty account that you want to create a filter for.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -12746,7 +12746,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.*/",
+        "setterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -12761,13 +12761,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>",
+          "documentation" : "<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -12776,12 +12776,12 @@
         "c2jName" : "Name",
         "c2jShape" : "FilterName",
         "deprecated" : false,
-        "documentation" : "<p>The name of the filter.</p>",
+        "documentation" : "<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the filter.</p>\n@return The name of the filter.*/",
+        "getterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@return The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -12815,7 +12815,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.*/",
+        "setterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -12830,13 +12830,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The name of the filter.</p>",
+          "documentation" : "<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -13052,12 +13052,12 @@
         "c2jName" : "FindingCriteria",
         "c2jShape" : "FindingCriteria",
         "deprecated" : false,
-        "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
+        "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withFindingCriteria",
-        "getterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@return Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
+        "getterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@return Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
         "getterMethodName" : "getFindingCriteria",
         "getterModel" : {
           "returnType" : "FindingCriteria",
@@ -13091,7 +13091,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "FindingCriteria",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
+        "setterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
         "setterMethodName" : "setFindingCriteria",
         "setterModel" : {
           "timestampFormat" : null,
@@ -13106,13 +13106,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "FindingCriteria",
           "variableName" : "findingCriteria",
           "variableType" : "FindingCriteria",
-          "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
+          "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
           "simpleType" : "FindingCriteria",
           "variableSetterType" : "FindingCriteria"
         },
@@ -13555,12 +13555,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>",
+          "documentation" : "<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@return The unique ID of the detector of the GuardDuty account that you want to create a filter for.*/",
+          "getterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@return The ID of the detector belonging to the GuardDuty account that you want to create a filter for.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -13594,7 +13594,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.*/",
+          "setterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -13609,13 +13609,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>\n@param detectorId The ID of the detector belonging to the GuardDuty account that you want to create a filter for.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>",
+            "documentation" : "<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -13625,12 +13625,12 @@
           "c2jName" : "FindingCriteria",
           "c2jShape" : "FindingCriteria",
           "deprecated" : false,
-          "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
+          "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withFindingCriteria",
-          "getterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@return Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
+          "getterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@return Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
           "getterMethodName" : "getFindingCriteria",
           "getterModel" : {
             "returnType" : "FindingCriteria",
@@ -13664,7 +13664,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "FindingCriteria",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
+          "setterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>*/",
           "setterMethodName" : "setFindingCriteria",
           "setterModel" : {
             "timestampFormat" : null,
@@ -13679,13 +13679,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>\n@param findingCriteria Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "FindingCriteria",
             "variableName" : "findingCriteria",
             "variableType" : "FindingCriteria",
-            "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
+            "documentation" : "<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
             "simpleType" : "FindingCriteria",
             "variableSetterType" : "FindingCriteria"
           },
@@ -13695,12 +13695,12 @@
           "c2jName" : "Name",
           "c2jShape" : "FilterName",
           "deprecated" : false,
-          "documentation" : "<p>The name of the filter.</p>",
+          "documentation" : "<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the filter.</p>\n@return The name of the filter.*/",
+          "getterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@return The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -13734,7 +13734,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.*/",
+          "setterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -13749,13 +13749,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the filter.</p>\n@param name The name of the filter.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>\n@param name The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the filter.</p>",
+            "documentation" : "<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -15663,12 +15663,12 @@
         "c2jName" : "AccountDetails",
         "c2jShape" : "AccountDetails",
         "deprecated" : false,
-        "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>",
+        "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAccountDetails",
-        "getterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@return A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.*/",
+        "getterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@return A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.*/",
         "getterMethodName" : "getAccountDetails",
         "getterModel" : {
           "returnType" : "java.util.List<AccountDetail>",
@@ -15786,7 +15786,7 @@
         "marshallingType" : "LIST",
         "name" : "AccountDetails",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.*/",
+        "setterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.*/",
         "setterMethodName" : "setAccountDetails",
         "setterModel" : {
           "timestampFormat" : null,
@@ -15801,13 +15801,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountDetails(java.util.Collection)} or {@link #withAccountDetails(java.util.Collection)} if you want to override the existing values.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountDetails(java.util.Collection)} or {@link #withAccountDetails(java.util.Collection)} if you want to override the existing values.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.List<AccountDetail>",
           "variableName" : "accountDetails",
           "variableType" : "java.util.List<AccountDetail>",
-          "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>",
+          "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>",
           "simpleType" : "List<AccountDetail>",
           "variableSetterType" : "java.util.Collection<AccountDetail>"
         },
@@ -15818,12 +15818,12 @@
           "c2jName" : "AccountDetails",
           "c2jShape" : "AccountDetails",
           "deprecated" : false,
-          "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>",
+          "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAccountDetails",
-          "getterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@return A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.*/",
+          "getterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@return A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.*/",
           "getterMethodName" : "getAccountDetails",
           "getterModel" : {
             "returnType" : "java.util.List<AccountDetail>",
@@ -15941,7 +15941,7 @@
           "marshallingType" : "LIST",
           "name" : "AccountDetails",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.*/",
+          "setterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.*/",
           "setterMethodName" : "setAccountDetails",
           "setterModel" : {
             "timestampFormat" : null,
@@ -15956,13 +15956,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountDetails(java.util.Collection)} or {@link #withAccountDetails(java.util.Collection)} if you want to override the existing values.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountDetails(java.util.Collection)} or {@link #withAccountDetails(java.util.Collection)} if you want to override the existing values.</p>\n@param accountDetails A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.List<AccountDetail>",
             "variableName" : "accountDetails",
             "variableType" : "java.util.List<AccountDetail>",
-            "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>",
+            "documentation" : "<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>",
             "simpleType" : "List<AccountDetail>",
             "variableSetterType" : "java.util.Collection<AccountDetail>"
           },
@@ -24770,12 +24770,12 @@
         "c2jName" : "MemberAccountLimitReached",
         "c2jShape" : "Boolean",
         "deprecated" : false,
-        "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>",
+        "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMemberAccountLimitReached",
-        "getterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@return Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.*/",
+        "getterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@return Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.*/",
         "getterMethodName" : "getMemberAccountLimitReached",
         "getterModel" : {
           "returnType" : "Boolean",
@@ -24809,7 +24809,7 @@
         "marshallingType" : "BOOLEAN",
         "name" : "MemberAccountLimitReached",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.*/",
+        "setterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.*/",
         "setterMethodName" : "setMemberAccountLimitReached",
         "setterModel" : {
           "timestampFormat" : null,
@@ -24824,13 +24824,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "Boolean",
           "variableName" : "memberAccountLimitReached",
           "variableType" : "Boolean",
-          "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>",
+          "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>",
           "simpleType" : "Boolean",
           "variableSetterType" : "Boolean"
         },
@@ -24839,12 +24839,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "OrganizationDataSourceConfigurationsResult",
         "deprecated" : false,
-        "documentation" : "<p>An object that describes which data sources are enabled automatically for member accounts.</p>",
+        "documentation" : "<p>Describes which data sources are enabled automatically for member accounts.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@return An object that describes which data sources are enabled automatically for member accounts.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@return Describes which data sources are enabled automatically for member accounts.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "OrganizationDataSourceConfigurationsResult",
@@ -24878,7 +24878,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -24893,13 +24893,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "OrganizationDataSourceConfigurationsResult",
           "variableName" : "dataSources",
           "variableType" : "OrganizationDataSourceConfigurationsResult",
-          "documentation" : "<p>An object that describes which data sources are enabled automatically for member accounts.</p>",
+          "documentation" : "<p>Describes which data sources are enabled automatically for member accounts.</p>",
           "simpleType" : "OrganizationDataSourceConfigurationsResult",
           "variableSetterType" : "OrganizationDataSourceConfigurationsResult"
         },
@@ -24980,12 +24980,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "OrganizationDataSourceConfigurationsResult",
           "deprecated" : false,
-          "documentation" : "<p>An object that describes which data sources are enabled automatically for member accounts.</p>",
+          "documentation" : "<p>Describes which data sources are enabled automatically for member accounts.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@return An object that describes which data sources are enabled automatically for member accounts.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@return Describes which data sources are enabled automatically for member accounts.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "OrganizationDataSourceConfigurationsResult",
@@ -25019,7 +25019,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -25034,13 +25034,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object that describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources An object that describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources are enabled automatically for member accounts.</p>\n@param dataSources Describes which data sources are enabled automatically for member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "OrganizationDataSourceConfigurationsResult",
             "variableName" : "dataSources",
             "variableType" : "OrganizationDataSourceConfigurationsResult",
-            "documentation" : "<p>An object that describes which data sources are enabled automatically for member accounts.</p>",
+            "documentation" : "<p>Describes which data sources are enabled automatically for member accounts.</p>",
             "simpleType" : "OrganizationDataSourceConfigurationsResult",
             "variableSetterType" : "OrganizationDataSourceConfigurationsResult"
           },
@@ -25050,12 +25050,12 @@
           "c2jName" : "MemberAccountLimitReached",
           "c2jShape" : "Boolean",
           "deprecated" : false,
-          "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>",
+          "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMemberAccountLimitReached",
-          "getterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@return Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.*/",
+          "getterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@return Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.*/",
           "getterMethodName" : "getMemberAccountLimitReached",
           "getterModel" : {
             "returnType" : "Boolean",
@@ -25089,7 +25089,7 @@
           "marshallingType" : "BOOLEAN",
           "name" : "MemberAccountLimitReached",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.*/",
+          "setterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.*/",
           "setterMethodName" : "setMemberAccountLimitReached",
           "setterModel" : {
             "timestampFormat" : null,
@@ -25104,13 +25104,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>\n@param memberAccountLimitReached Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "Boolean",
             "variableName" : "memberAccountLimitReached",
             "variableType" : "Boolean",
-            "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>",
+            "documentation" : "<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>",
             "simpleType" : "Boolean",
             "variableSetterType" : "Boolean"
           },
@@ -27583,12 +27583,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>",
+        "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@return The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.*/",
+        "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@return The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -27622,7 +27622,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.*/",
+        "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -27637,13 +27637,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>",
+          "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -27652,12 +27652,12 @@
         "c2jName" : "AccountIds",
         "c2jShape" : "AccountIds",
         "deprecated" : false,
-        "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>",
+        "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAccountIds",
-        "getterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.*/",
+        "getterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.*/",
         "getterMethodName" : "getAccountIds",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -27775,7 +27775,7 @@
         "marshallingType" : "LIST",
         "name" : "AccountIds",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.*/",
+        "setterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.*/",
         "setterMethodName" : "setAccountIds",
         "setterModel" : {
           "timestampFormat" : null,
@@ -27790,13 +27790,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountIds(java.util.Collection)} or {@link #withAccountIds(java.util.Collection)} if you want to override the existing values.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountIds(java.util.Collection)} or {@link #withAccountIds(java.util.Collection)} if you want to override the existing values.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.List<String>",
           "variableName" : "accountIds",
           "variableType" : "java.util.List<String>",
-          "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>",
+          "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -27807,12 +27807,12 @@
           "c2jName" : "AccountIds",
           "c2jShape" : "AccountIds",
           "deprecated" : false,
-          "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>",
+          "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAccountIds",
-          "getterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.*/",
+          "getterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@return A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.*/",
           "getterMethodName" : "getAccountIds",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -27930,7 +27930,7 @@
           "marshallingType" : "LIST",
           "name" : "AccountIds",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.*/",
+          "setterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.*/",
           "setterMethodName" : "setAccountIds",
           "setterModel" : {
             "timestampFormat" : null,
@@ -27945,13 +27945,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountIds(java.util.Collection)} or {@link #withAccountIds(java.util.Collection)} if you want to override the existing values.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccountIds(java.util.Collection)} or {@link #withAccountIds(java.util.Collection)} if you want to override the existing values.</p>\n@param accountIds A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.List<String>",
             "variableName" : "accountIds",
             "variableType" : "java.util.List<String>",
-            "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>",
+            "documentation" : "<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -27961,12 +27961,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>",
+          "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@return The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.*/",
+          "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@return The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -28000,7 +28000,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.*/",
+          "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -28015,13 +28015,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>\n@param detectorId The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>",
+            "documentation" : "<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -33449,12 +33449,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "DataSourceConfigurationsResult",
         "deprecated" : false,
-        "documentation" : "<p>An object that describes which data sources are enabled for the detector.</p>",
+        "documentation" : "<p>Describes which data sources are enabled for the detector.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@return An object that describes which data sources are enabled for the detector.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@return Describes which data sources are enabled for the detector.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "DataSourceConfigurationsResult",
@@ -33488,7 +33488,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -33503,13 +33503,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "DataSourceConfigurationsResult",
           "variableName" : "dataSources",
           "variableType" : "DataSourceConfigurationsResult",
-          "documentation" : "<p>An object that describes which data sources are enabled for the detector.</p>",
+          "documentation" : "<p>Describes which data sources are enabled for the detector.</p>",
           "simpleType" : "DataSourceConfigurationsResult",
           "variableSetterType" : "DataSourceConfigurationsResult"
         },
@@ -33743,12 +33743,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "DataSourceConfigurationsResult",
           "deprecated" : false,
-          "documentation" : "<p>An object that describes which data sources are enabled for the detector.</p>",
+          "documentation" : "<p>Describes which data sources are enabled for the detector.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@return An object that describes which data sources are enabled for the detector.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@return Describes which data sources are enabled for the detector.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "DataSourceConfigurationsResult",
@@ -33782,7 +33782,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -33797,13 +33797,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object that describes which data sources are enabled for the detector.</p>\n@param dataSources An object that describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources are enabled for the detector.</p>\n@param dataSources Describes which data sources are enabled for the detector.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "DataSourceConfigurationsResult",
             "variableName" : "dataSources",
             "variableType" : "DataSourceConfigurationsResult",
-            "documentation" : "<p>An object that describes which data sources are enabled for the detector.</p>",
+            "documentation" : "<p>Describes which data sources are enabled for the detector.</p>",
             "simpleType" : "DataSourceConfigurationsResult",
             "variableSetterType" : "DataSourceConfigurationsResult"
           },
@@ -39123,12 +39123,12 @@
         "c2jName" : "Master",
         "c2jShape" : "Master",
         "deprecated" : false,
-        "documentation" : "<p>The master account details.</p>",
+        "documentation" : "<p>The administrator account details.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMaster",
-        "getterDocumentation" : "/**<p>The master account details.</p>\n@return The master account details.*/",
+        "getterDocumentation" : "/**<p>The administrator account details.</p>\n@return The administrator account details.*/",
         "getterMethodName" : "getMaster",
         "getterModel" : {
           "returnType" : "Master",
@@ -39162,7 +39162,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "Master",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.*/",
+        "setterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.*/",
         "setterMethodName" : "setMaster",
         "setterModel" : {
           "timestampFormat" : null,
@@ -39177,13 +39177,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "Master",
           "variableName" : "master",
           "variableType" : "Master",
-          "documentation" : "<p>The master account details.</p>",
+          "documentation" : "<p>The administrator account details.</p>",
           "simpleType" : "Master",
           "variableSetterType" : "Master"
         },
@@ -39194,12 +39194,12 @@
           "c2jName" : "Master",
           "c2jShape" : "Master",
           "deprecated" : false,
-          "documentation" : "<p>The master account details.</p>",
+          "documentation" : "<p>The administrator account details.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMaster",
-          "getterDocumentation" : "/**<p>The master account details.</p>\n@return The master account details.*/",
+          "getterDocumentation" : "/**<p>The administrator account details.</p>\n@return The administrator account details.*/",
           "getterMethodName" : "getMaster",
           "getterModel" : {
             "returnType" : "Master",
@@ -39233,7 +39233,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "Master",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.*/",
+          "setterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.*/",
           "setterMethodName" : "setMaster",
           "setterModel" : {
             "timestampFormat" : null,
@@ -39248,13 +39248,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The master account details.</p>\n@param master The master account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The administrator account details.</p>\n@param master The administrator account details.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "Master",
             "variableName" : "master",
             "variableType" : "Master",
-            "documentation" : "<p>The master account details.</p>",
+            "documentation" : "<p>The administrator account details.</p>",
             "simpleType" : "Master",
             "variableSetterType" : "Master"
           },
@@ -39314,12 +39314,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The detector ID for the master account.</p>",
+        "documentation" : "<p>The detector ID for the administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@return The detector ID for the master account.*/",
+        "getterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@return The detector ID for the administrator account.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -39353,7 +39353,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.*/",
+        "setterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -39368,13 +39368,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The detector ID for the master account.</p>",
+          "documentation" : "<p>The detector ID for the administrator account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -39692,12 +39692,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The detector ID for the master account.</p>",
+          "documentation" : "<p>The detector ID for the administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@return The detector ID for the master account.*/",
+          "getterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@return The detector ID for the administrator account.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -39731,7 +39731,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.*/",
+          "setterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -39746,13 +39746,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The detector ID for the master account.</p>\n@param detectorId The detector ID for the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The detector ID for the administrator account.</p>\n@param detectorId The detector ID for the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The detector ID for the master account.</p>",
+            "documentation" : "<p>The detector ID for the administrator account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -54977,12 +54977,12 @@
         "c2jName" : "AdminAccounts",
         "c2jShape" : "AdminAccounts",
         "deprecated" : false,
-        "documentation" : "<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>",
+        "documentation" : "<p>A list of accounts configured as GuardDuty delegated administrators.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAdminAccounts",
-        "getterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@return An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.*/",
+        "getterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@return A list of accounts configured as GuardDuty delegated administrators.*/",
         "getterMethodName" : "getAdminAccounts",
         "getterModel" : {
           "returnType" : "java.util.List<AdminAccount>",
@@ -55100,7 +55100,7 @@
         "marshallingType" : "LIST",
         "name" : "AdminAccounts",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.*/",
+        "setterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.*/",
         "setterMethodName" : "setAdminAccounts",
         "setterModel" : {
           "timestampFormat" : null,
@@ -55115,13 +55115,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdminAccounts(java.util.Collection)} or {@link #withAdminAccounts(java.util.Collection)} if you want to override the existing values.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdminAccounts(java.util.Collection)} or {@link #withAdminAccounts(java.util.Collection)} if you want to override the existing values.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.List<AdminAccount>",
           "variableName" : "adminAccounts",
           "variableType" : "java.util.List<AdminAccount>",
-          "documentation" : "<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>",
+          "documentation" : "<p>A list of accounts configured as GuardDuty delegated administrators.</p>",
           "simpleType" : "List<AdminAccount>",
           "variableSetterType" : "java.util.Collection<AdminAccount>"
         },
@@ -55201,12 +55201,12 @@
           "c2jName" : "AdminAccounts",
           "c2jShape" : "AdminAccounts",
           "deprecated" : false,
-          "documentation" : "<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>",
+          "documentation" : "<p>A list of accounts configured as GuardDuty delegated administrators.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAdminAccounts",
-          "getterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@return An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.*/",
+          "getterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@return A list of accounts configured as GuardDuty delegated administrators.*/",
           "getterMethodName" : "getAdminAccounts",
           "getterModel" : {
             "returnType" : "java.util.List<AdminAccount>",
@@ -55324,7 +55324,7 @@
           "marshallingType" : "LIST",
           "name" : "AdminAccounts",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.*/",
+          "setterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.*/",
           "setterMethodName" : "setAdminAccounts",
           "setterModel" : {
             "timestampFormat" : null,
@@ -55339,13 +55339,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdminAccounts(java.util.Collection)} or {@link #withAdminAccounts(java.util.Collection)} if you want to override the existing values.</p>\n@param adminAccounts An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of accounts configured as GuardDuty delegated administrators.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAdminAccounts(java.util.Collection)} or {@link #withAdminAccounts(java.util.Collection)} if you want to override the existing values.</p>\n@param adminAccounts A list of accounts configured as GuardDuty delegated administrators.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.List<AdminAccount>",
             "variableName" : "adminAccounts",
             "variableType" : "java.util.List<AdminAccount>",
-            "documentation" : "<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>",
+            "documentation" : "<p>A list of accounts configured as GuardDuty delegated administrators.</p>",
             "simpleType" : "List<AdminAccount>",
             "variableSetterType" : "java.util.Collection<AdminAccount>"
           },
@@ -58414,7 +58414,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains information about the master account and invitation.</p>",
+      "documentation" : "<p>Contains information about the administrator account and invitation.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -58429,12 +58429,12 @@
         "c2jName" : "AccountId",
         "c2jShape" : "AccountId",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the account used as the master account.</p>",
+        "documentation" : "<p>The ID of the account used as the administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAccountId",
-        "getterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@return The ID of the account used as the master account.*/",
+        "getterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@return The ID of the account used as the administrator account.*/",
         "getterMethodName" : "getAccountId",
         "getterModel" : {
           "returnType" : "String",
@@ -58468,7 +58468,7 @@
         "marshallingType" : "STRING",
         "name" : "AccountId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.*/",
+        "setterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.*/",
         "setterMethodName" : "setAccountId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -58483,13 +58483,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "accountId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the account used as the master account.</p>",
+          "documentation" : "<p>The ID of the account used as the administrator account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -58498,12 +58498,12 @@
         "c2jName" : "InvitationId",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The value used to validate the master account to the member account.</p>",
+        "documentation" : "<p>The value used to validate the administrator account to the member account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withInvitationId",
-        "getterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@return The value used to validate the master account to the member account.*/",
+        "getterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@return The value used to validate the administrator account to the member account.*/",
         "getterMethodName" : "getInvitationId",
         "getterModel" : {
           "returnType" : "String",
@@ -58537,7 +58537,7 @@
         "marshallingType" : "STRING",
         "name" : "InvitationId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.*/",
+        "setterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.*/",
         "setterMethodName" : "setInvitationId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -58552,13 +58552,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "invitationId",
           "variableType" : "String",
-          "documentation" : "<p>The value used to validate the master account to the member account.</p>",
+          "documentation" : "<p>The value used to validate the administrator account to the member account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -58567,12 +58567,12 @@
         "c2jName" : "RelationshipStatus",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The status of the relationship between the master and member accounts.</p>",
+        "documentation" : "<p>The status of the relationship between the administrator and member accounts.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withRelationshipStatus",
-        "getterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@return The status of the relationship between the master and member accounts.*/",
+        "getterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@return The status of the relationship between the administrator and member accounts.*/",
         "getterMethodName" : "getRelationshipStatus",
         "getterModel" : {
           "returnType" : "String",
@@ -58606,7 +58606,7 @@
         "marshallingType" : "STRING",
         "name" : "RelationshipStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.*/",
+        "setterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.*/",
         "setterMethodName" : "setRelationshipStatus",
         "setterModel" : {
           "timestampFormat" : null,
@@ -58621,13 +58621,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "relationshipStatus",
           "variableType" : "String",
-          "documentation" : "<p>The status of the relationship between the master and member accounts.</p>",
+          "documentation" : "<p>The status of the relationship between the administrator and member accounts.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -58707,12 +58707,12 @@
           "c2jName" : "AccountId",
           "c2jShape" : "AccountId",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the account used as the master account.</p>",
+          "documentation" : "<p>The ID of the account used as the administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAccountId",
-          "getterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@return The ID of the account used as the master account.*/",
+          "getterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@return The ID of the account used as the administrator account.*/",
           "getterMethodName" : "getAccountId",
           "getterModel" : {
             "returnType" : "String",
@@ -58746,7 +58746,7 @@
           "marshallingType" : "STRING",
           "name" : "AccountId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.*/",
+          "setterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.*/",
           "setterMethodName" : "setAccountId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -58761,13 +58761,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the account used as the master account.</p>\n@param accountId The ID of the account used as the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the account used as the administrator account.</p>\n@param accountId The ID of the account used as the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "accountId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the account used as the master account.</p>",
+            "documentation" : "<p>The ID of the account used as the administrator account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -58777,12 +58777,12 @@
           "c2jName" : "InvitationId",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The value used to validate the master account to the member account.</p>",
+          "documentation" : "<p>The value used to validate the administrator account to the member account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withInvitationId",
-          "getterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@return The value used to validate the master account to the member account.*/",
+          "getterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@return The value used to validate the administrator account to the member account.*/",
           "getterMethodName" : "getInvitationId",
           "getterModel" : {
             "returnType" : "String",
@@ -58816,7 +58816,7 @@
           "marshallingType" : "STRING",
           "name" : "InvitationId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.*/",
+          "setterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.*/",
           "setterMethodName" : "setInvitationId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -58831,13 +58831,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The value used to validate the master account to the member account.</p>\n@param invitationId The value used to validate the master account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The value used to validate the administrator account to the member account.</p>\n@param invitationId The value used to validate the administrator account to the member account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "invitationId",
             "variableType" : "String",
-            "documentation" : "<p>The value used to validate the master account to the member account.</p>",
+            "documentation" : "<p>The value used to validate the administrator account to the member account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -58917,12 +58917,12 @@
           "c2jName" : "RelationshipStatus",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The status of the relationship between the master and member accounts.</p>",
+          "documentation" : "<p>The status of the relationship between the administrator and member accounts.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withRelationshipStatus",
-          "getterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@return The status of the relationship between the master and member accounts.*/",
+          "getterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@return The status of the relationship between the administrator and member accounts.*/",
           "getterMethodName" : "getRelationshipStatus",
           "getterModel" : {
             "returnType" : "String",
@@ -58956,7 +58956,7 @@
           "marshallingType" : "STRING",
           "name" : "RelationshipStatus",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.*/",
+          "setterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.*/",
           "setterMethodName" : "setRelationshipStatus",
           "setterModel" : {
             "timestampFormat" : null,
@@ -58971,13 +58971,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the relationship between the master and member accounts.</p>\n@param relationshipStatus The status of the relationship between the master and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The status of the relationship between the administrator and member accounts.</p>\n@param relationshipStatus The status of the relationship between the administrator and member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "relationshipStatus",
             "variableType" : "String",
-            "documentation" : "<p>The status of the relationship between the master and member accounts.</p>",
+            "documentation" : "<p>The status of the relationship between the administrator and member accounts.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -59168,12 +59168,12 @@
         "c2jName" : "MasterId",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The master account ID.</p>",
+        "documentation" : "<p>The administrator account ID.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMasterId",
-        "getterDocumentation" : "/**<p>The master account ID.</p>\n@return The master account ID.*/",
+        "getterDocumentation" : "/**<p>The administrator account ID.</p>\n@return The administrator account ID.*/",
         "getterMethodName" : "getMasterId",
         "getterModel" : {
           "returnType" : "String",
@@ -59207,7 +59207,7 @@
         "marshallingType" : "STRING",
         "name" : "MasterId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.*/",
+        "setterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.*/",
         "setterMethodName" : "setMasterId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -59222,13 +59222,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "masterId",
           "variableType" : "String",
-          "documentation" : "<p>The master account ID.</p>",
+          "documentation" : "<p>The administrator account ID.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -59306,12 +59306,12 @@
         "c2jName" : "RelationshipStatus",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The status of the relationship between the member and the master.</p>",
+        "documentation" : "<p>The status of the relationship between the member and the administrator.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withRelationshipStatus",
-        "getterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@return The status of the relationship between the member and the master.*/",
+        "getterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@return The status of the relationship between the member and the administrator.*/",
         "getterMethodName" : "getRelationshipStatus",
         "getterModel" : {
           "returnType" : "String",
@@ -59345,7 +59345,7 @@
         "marshallingType" : "STRING",
         "name" : "RelationshipStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.*/",
+        "setterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.*/",
         "setterMethodName" : "setRelationshipStatus",
         "setterModel" : {
           "timestampFormat" : null,
@@ -59360,13 +59360,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "relationshipStatus",
           "variableType" : "String",
-          "documentation" : "<p>The status of the relationship between the member and the master.</p>",
+          "documentation" : "<p>The status of the relationship between the member and the administrator.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -59795,12 +59795,12 @@
           "c2jName" : "MasterId",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The master account ID.</p>",
+          "documentation" : "<p>The administrator account ID.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMasterId",
-          "getterDocumentation" : "/**<p>The master account ID.</p>\n@return The master account ID.*/",
+          "getterDocumentation" : "/**<p>The administrator account ID.</p>\n@return The administrator account ID.*/",
           "getterMethodName" : "getMasterId",
           "getterModel" : {
             "returnType" : "String",
@@ -59834,7 +59834,7 @@
           "marshallingType" : "STRING",
           "name" : "MasterId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.*/",
+          "setterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.*/",
           "setterMethodName" : "setMasterId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -59849,13 +59849,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The master account ID.</p>\n@param masterId The master account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The administrator account ID.</p>\n@param masterId The administrator account ID.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "masterId",
             "variableType" : "String",
-            "documentation" : "<p>The master account ID.</p>",
+            "documentation" : "<p>The administrator account ID.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -59865,12 +59865,12 @@
           "c2jName" : "RelationshipStatus",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The status of the relationship between the member and the master.</p>",
+          "documentation" : "<p>The status of the relationship between the member and the administrator.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withRelationshipStatus",
-          "getterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@return The status of the relationship between the member and the master.*/",
+          "getterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@return The status of the relationship between the member and the administrator.*/",
           "getterMethodName" : "getRelationshipStatus",
           "getterModel" : {
             "returnType" : "String",
@@ -59904,7 +59904,7 @@
           "marshallingType" : "STRING",
           "name" : "RelationshipStatus",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.*/",
+          "setterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.*/",
           "setterMethodName" : "setRelationshipStatus",
           "setterModel" : {
             "timestampFormat" : null,
@@ -59919,13 +59919,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the relationship between the member and the master.</p>\n@param relationshipStatus The status of the relationship between the member and the master.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The status of the relationship between the member and the administrator.</p>\n@param relationshipStatus The status of the relationship between the member and the administrator.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "relationshipStatus",
             "variableType" : "String",
-            "documentation" : "<p>The status of the relationship between the member and the master.</p>",
+            "documentation" : "<p>The status of the relationship between the member and the administrator.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -72813,12 +72813,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>",
+        "documentation" : "<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@return The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.*/",
+        "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@return The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -72852,7 +72852,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.*/",
+        "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -72867,13 +72867,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>",
+          "documentation" : "<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -73191,12 +73191,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>",
+          "documentation" : "<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@return The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.*/",
+          "getterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@return The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -73230,7 +73230,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.*/",
+          "setterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -73245,13 +73245,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>\n@param detectorId The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>",
+            "documentation" : "<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -73660,12 +73660,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>",
+        "documentation" : "<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@return The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.*/",
+        "getterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@return The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -73699,7 +73699,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.*/",
+        "setterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -73714,13 +73714,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>",
+          "documentation" : "<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -74038,12 +74038,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>",
+          "documentation" : "<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@return The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.*/",
+          "getterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@return The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -74077,7 +74077,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.*/",
+          "setterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -74092,13 +74092,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>\n@param detectorId The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>",
+            "documentation" : "<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -77918,12 +77918,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "DataSourceConfigurations",
         "deprecated" : false,
-        "documentation" : "<p>An object that describes which data sources will be updated.</p>",
+        "documentation" : "<p>Describes which data sources will be updated.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@return An object that describes which data sources will be updated.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "DataSourceConfigurations",
@@ -77957,7 +77957,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -77972,13 +77972,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "DataSourceConfigurations",
           "variableName" : "dataSources",
           "variableType" : "DataSourceConfigurations",
-          "documentation" : "<p>An object that describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "simpleType" : "DataSourceConfigurations",
           "variableSetterType" : "DataSourceConfigurations"
         },
@@ -77989,12 +77989,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "DataSourceConfigurations",
           "deprecated" : false,
-          "documentation" : "<p>An object that describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@return An object that describes which data sources will be updated.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "DataSourceConfigurations",
@@ -78028,7 +78028,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -78043,13 +78043,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object that describes which data sources will be updated.</p>\n@param dataSources An object that describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "DataSourceConfigurations",
             "variableName" : "dataSources",
             "variableType" : "DataSourceConfigurations",
-            "documentation" : "<p>An object that describes which data sources will be updated.</p>",
+            "documentation" : "<p>Describes which data sources will be updated.</p>",
             "simpleType" : "DataSourceConfigurations",
             "variableSetterType" : "DataSourceConfigurations"
           },
@@ -81032,12 +81032,12 @@
         "c2jName" : "DetectorId",
         "c2jShape" : "DetectorId",
         "deprecated" : false,
-        "documentation" : "<p>The detector ID of the master account.</p>",
+        "documentation" : "<p>The detector ID of the administrator account.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDetectorId",
-        "getterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@return The detector ID of the master account.*/",
+        "getterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@return The detector ID of the administrator account.*/",
         "getterMethodName" : "getDetectorId",
         "getterModel" : {
           "returnType" : "String",
@@ -81071,7 +81071,7 @@
         "marshallingType" : "STRING",
         "name" : "DetectorId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.*/",
+        "setterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.*/",
         "setterMethodName" : "setDetectorId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -81086,13 +81086,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "detectorId",
           "variableType" : "String",
-          "documentation" : "<p>The detector ID of the master account.</p>",
+          "documentation" : "<p>The detector ID of the administrator account.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -81254,12 +81254,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "DataSourceConfigurations",
         "deprecated" : false,
-        "documentation" : "<p>An object describes which data sources will be updated.</p>",
+        "documentation" : "<p>Describes which data sources will be updated.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@return An object describes which data sources will be updated.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "DataSourceConfigurations",
@@ -81293,7 +81293,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -81308,13 +81308,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "DataSourceConfigurations",
           "variableName" : "dataSources",
           "variableType" : "DataSourceConfigurations",
-          "documentation" : "<p>An object describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "simpleType" : "DataSourceConfigurations",
           "variableSetterType" : "DataSourceConfigurations"
         },
@@ -81479,12 +81479,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "DataSourceConfigurations",
           "deprecated" : false,
-          "documentation" : "<p>An object describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@return An object describes which data sources will be updated.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "DataSourceConfigurations",
@@ -81518,7 +81518,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -81533,13 +81533,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "DataSourceConfigurations",
             "variableName" : "dataSources",
             "variableType" : "DataSourceConfigurations",
-            "documentation" : "<p>An object describes which data sources will be updated.</p>",
+            "documentation" : "<p>Describes which data sources will be updated.</p>",
             "simpleType" : "DataSourceConfigurations",
             "variableSetterType" : "DataSourceConfigurations"
           },
@@ -81549,12 +81549,12 @@
           "c2jName" : "DetectorId",
           "c2jShape" : "DetectorId",
           "deprecated" : false,
-          "documentation" : "<p>The detector ID of the master account.</p>",
+          "documentation" : "<p>The detector ID of the administrator account.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDetectorId",
-          "getterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@return The detector ID of the master account.*/",
+          "getterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@return The detector ID of the administrator account.*/",
           "getterMethodName" : "getDetectorId",
           "getterModel" : {
             "returnType" : "String",
@@ -81588,7 +81588,7 @@
           "marshallingType" : "STRING",
           "name" : "DetectorId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.*/",
+          "setterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.*/",
           "setterMethodName" : "setDetectorId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -81603,13 +81603,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The detector ID of the master account.</p>\n@param detectorId The detector ID of the master account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The detector ID of the administrator account.</p>\n@param detectorId The detector ID of the administrator account.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "detectorId",
             "variableType" : "String",
-            "documentation" : "<p>The detector ID of the master account.</p>",
+            "documentation" : "<p>The detector ID of the administrator account.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -82156,12 +82156,12 @@
         "c2jName" : "DataSources",
         "c2jShape" : "OrganizationDataSourceConfigurations",
         "deprecated" : false,
-        "documentation" : "<p>An object describes which data sources will be updated.</p>",
+        "documentation" : "<p>Describes which data sources will be updated.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDataSources",
-        "getterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@return An object describes which data sources will be updated.*/",
+        "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
         "getterMethodName" : "getDataSources",
         "getterModel" : {
           "returnType" : "OrganizationDataSourceConfigurations",
@@ -82195,7 +82195,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "DataSources",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.*/",
+        "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
         "setterMethodName" : "setDataSources",
         "setterModel" : {
           "timestampFormat" : null,
@@ -82210,13 +82210,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "OrganizationDataSourceConfigurations",
           "variableName" : "dataSources",
           "variableType" : "OrganizationDataSourceConfigurations",
-          "documentation" : "<p>An object describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "simpleType" : "OrganizationDataSourceConfigurations",
           "variableSetterType" : "OrganizationDataSourceConfigurations"
         },
@@ -82297,12 +82297,12 @@
           "c2jName" : "DataSources",
           "c2jShape" : "OrganizationDataSourceConfigurations",
           "deprecated" : false,
-          "documentation" : "<p>An object describes which data sources will be updated.</p>",
+          "documentation" : "<p>Describes which data sources will be updated.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDataSources",
-          "getterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@return An object describes which data sources will be updated.*/",
+          "getterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@return Describes which data sources will be updated.*/",
           "getterMethodName" : "getDataSources",
           "getterModel" : {
             "returnType" : "OrganizationDataSourceConfigurations",
@@ -82336,7 +82336,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "DataSources",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.*/",
+          "setterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.*/",
           "setterMethodName" : "setDataSources",
           "setterModel" : {
             "timestampFormat" : null,
@@ -82351,13 +82351,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An object describes which data sources will be updated.</p>\n@param dataSources An object describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Describes which data sources will be updated.</p>\n@param dataSources Describes which data sources will be updated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "OrganizationDataSourceConfigurations",
             "variableName" : "dataSources",
             "variableType" : "OrganizationDataSourceConfigurations",
-            "documentation" : "<p>An object describes which data sources will be updated.</p>",
+            "documentation" : "<p>Describes which data sources will be updated.</p>",
             "simpleType" : "OrganizationDataSourceConfigurations",
             "variableSetterType" : "OrganizationDataSourceConfigurations"
           },
@@ -83245,12 +83245,12 @@
         "c2jName" : "Location",
         "c2jShape" : "Location",
         "deprecated" : false,
-        "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>",
+        "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withLocation",
-        "getterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@return The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.*/",
+        "getterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@return The updated URI of the file that contains the ThreateIntelSet.*/",
         "getterMethodName" : "getLocation",
         "getterModel" : {
           "returnType" : "String",
@@ -83284,7 +83284,7 @@
         "marshallingType" : "STRING",
         "name" : "Location",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.*/",
+        "setterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.*/",
         "setterMethodName" : "setLocation",
         "setterModel" : {
           "timestampFormat" : null,
@@ -83299,13 +83299,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "location",
           "variableType" : "String",
-          "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>",
+          "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -83525,12 +83525,12 @@
           "c2jName" : "Location",
           "c2jShape" : "Location",
           "deprecated" : false,
-          "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>",
+          "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withLocation",
-          "getterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@return The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.*/",
+          "getterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@return The updated URI of the file that contains the ThreateIntelSet.*/",
           "getterMethodName" : "getLocation",
           "getterModel" : {
             "returnType" : "String",
@@ -83564,7 +83564,7 @@
           "marshallingType" : "STRING",
           "name" : "Location",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.*/",
+          "setterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.*/",
           "setterMethodName" : "setLocation",
           "setterModel" : {
             "timestampFormat" : null,
@@ -83579,13 +83579,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The updated URI of the file that contains the ThreateIntelSet.</p>\n@param location The updated URI of the file that contains the ThreateIntelSet.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "location",
             "variableType" : "String",
-            "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>",
+            "documentation" : "<p>The updated URI of the file that contains the ThreateIntelSet.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
diff --git a/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-model.json b/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-model.json
index 275d87c359ab..546b753e36fd 100644
--- a/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/guardduty-2017-11-28-model.json
@@ -25,7 +25,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Accepts the invitation to be monitored by a master GuardDuty account.</p>"
+      "documentation":"<p>Accepts the invitation to be monitored by a GuardDuty administrator account.</p>"
     },
     "ArchiveFindings":{
       "name":"ArchiveFindings",
@@ -40,7 +40,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Archives GuardDuty findings that are specified by the list of finding IDs.</p> <note> <p>Only the master account can archive findings. Member accounts don't have permission to archive findings from their accounts.</p> </note>"
+      "documentation":"<p>Archives GuardDuty findings that are specified by the list of finding IDs.</p> <note> <p>Only the administrator account can archive findings. Member accounts don't have permission to archive findings from their accounts.</p> </note>"
     },
     "CreateDetector":{
       "name":"CreateDetector",
@@ -85,7 +85,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are included in IPSets. Only users from the master account can use this operation.</p>"
+      "documentation":"<p>Creates a new IPSet, which is called a trusted IP list in the console user interface. An IPSet is a list of IP addresses that are trusted for secure communication with AWS infrastructure and applications. GuardDuty doesn't generate findings for IP addresses that are included in IPSets. Only users from the administrator account can use this operation.</p>"
     },
     "CreateMembers":{
       "name":"CreateMembers",
@@ -100,7 +100,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Creates member accounts of the current AWS account by specifying a list of AWS account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.</p> <p>When using <code>Create Members</code> as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization master account, which must enable GuardDuty prior to being added as a member.</p> <p>If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using <a href=\"https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html\"> <code>Invite Members</code> </a>.</p>"
+      "documentation":"<p>Creates member accounts of the current AWS account by specifying a list of AWS account IDs. This step is a prerequisite for managing the associated member accounts either by invitation or through an organization.</p> <p>When using <code>Create Members</code> as an organizations delegated administrator this action will enable GuardDuty in the added member accounts, with the exception of the organization delegated administrator account, which must enable GuardDuty prior to being added as a member.</p> <p>If you are adding accounts by invitation use this action after GuardDuty has been enabled in potential member accounts and before using <a href=\"https://docs.aws.amazon.com/guardduty/latest/APIReference/API_InviteMembers.html\"> <code>Invite Members</code> </a>.</p>"
     },
     "CreatePublishingDestination":{
       "name":"CreatePublishingDestination",
@@ -145,7 +145,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. Only users of the master account can use this operation.</p>"
+      "documentation":"<p>Creates a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets. Only users of the administrator account can use this operation.</p>"
     },
     "DeclineInvitations":{
       "name":"DeclineInvitations",
@@ -235,7 +235,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>"
+      "documentation":"<p>Deletes GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.</p>"
     },
     "DeletePublishingDestination":{
       "name":"DeletePublishingDestination",
@@ -325,7 +325,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Disassociates the current GuardDuty member account from its master account.</p>"
+      "documentation":"<p>Disassociates the current GuardDuty member account from its administrator account.</p>"
     },
     "DisassociateMembers":{
       "name":"DisassociateMembers",
@@ -340,7 +340,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>"
+      "documentation":"<p>Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs.</p>"
     },
     "EnableOrganizationAdminAccount":{
       "name":"EnableOrganizationAdminAccount",
@@ -460,7 +460,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Provides the details for the GuardDuty master account associated with the current GuardDuty member account.</p>"
+      "documentation":"<p>Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.</p>"
     },
     "GetMemberDetectors":{
       "name":"GetMemberDetectors",
@@ -490,7 +490,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.</p>"
+      "documentation":"<p>Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account IDs.</p>"
     },
     "GetThreatIntelSet":{
       "name":"GetThreatIntelSet",
@@ -535,7 +535,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the master account.</p>"
+      "documentation":"<p>Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty, and allow the current AWS account to view and manage these accounts' findings on their behalf as the GuardDuty administrator account.</p>"
     },
     "ListDetectors":{
       "name":"ListDetectors",
@@ -595,7 +595,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the IPSets returned are the IPSets from the associated master account.</p>"
+      "documentation":"<p>Lists the IPSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the IPSets returned are the IPSets from the associated administrator account.</p>"
     },
     "ListInvitations":{
       "name":"ListInvitations",
@@ -625,7 +625,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Lists details about all member accounts for the current GuardDuty master account.</p>"
+      "documentation":"<p>Lists details about all member accounts for the current GuardDuty administrator account.</p>"
     },
     "ListOrganizationAdminAccounts":{
       "name":"ListOrganizationAdminAccounts",
@@ -685,7 +685,7 @@
         {"shape":"BadRequestException"},
         {"shape":"InternalServerErrorException"}
       ],
-      "documentation":"<p>Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the ThreatIntelSets associated with the master account are returned.</p>"
+      "documentation":"<p>Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID. If you use this operation from a member account, the ThreatIntelSets associated with the administrator account are returned.</p>"
     },
     "StartMonitoringMembers":{
       "name":"StartMonitoringMembers",
@@ -900,12 +900,12 @@
         },
         "MasterId":{
           "shape":"String",
-          "documentation":"<p>The account ID of the master GuardDuty account whose invitation you're accepting.</p>",
+          "documentation":"<p>The account ID of the GuardDuty administrator account whose invitation you're accepting.</p>",
           "locationName":"masterId"
         },
         "InvitationId":{
           "shape":"String",
-          "documentation":"<p>The value that is used to validate the master account to the member account.</p>",
+          "documentation":"<p>The value that is used to validate the administrator account to the member account.</p>",
           "locationName":"invitationId"
         }
       }
@@ -1348,12 +1348,12 @@
         },
         "FindingPublishingFrequency":{
           "shape":"FindingPublishingFrequency",
-          "documentation":"<p>An enum value that specifies how frequently updated findings are exported.</p>",
+          "documentation":"<p>A value that specifies how frequently updated findings are exported.</p>",
           "locationName":"findingPublishingFrequency"
         },
         "DataSources":{
           "shape":"DataSourceConfigurations",
-          "documentation":"<p>An object that describes which data sources will be enabled for the detector.</p>",
+          "documentation":"<p>Describes which data sources will be enabled for the detector.</p>",
           "locationName":"dataSources"
         },
         "Tags":{
@@ -1383,13 +1383,13 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The unique ID of the detector of the GuardDuty account that you want to create a filter for.</p>",
+          "documentation":"<p>The ID of the detector belonging to the GuardDuty account that you want to create a filter for.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
         "Name":{
           "shape":"FilterName",
-          "documentation":"<p>The name of the filter.</p>",
+          "documentation":"<p>The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.</p>",
           "locationName":"name"
         },
         "Description":{
@@ -1409,7 +1409,7 @@
         },
         "FindingCriteria":{
           "shape":"FindingCriteria",
-          "documentation":"<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
+          "documentation":"<p>Represents the criteria to be used in the filter for querying findings.</p> <p>You can only use the following attributes to query findings:</p> <ul> <li> <p>accountId</p> </li> <li> <p>region</p> </li> <li> <p>confidence</p> </li> <li> <p>id</p> </li> <li> <p>resource.accessKeyDetails.accessKeyId</p> </li> <li> <p>resource.accessKeyDetails.principalId</p> </li> <li> <p>resource.accessKeyDetails.userName</p> </li> <li> <p>resource.accessKeyDetails.userType</p> </li> <li> <p>resource.instanceDetails.iamInstanceProfile.id</p> </li> <li> <p>resource.instanceDetails.imageId</p> </li> <li> <p>resource.instanceDetails.instanceId</p> </li> <li> <p>resource.instanceDetails.outpostArn</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.ipv6Addresses</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicDnsName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.publicIp</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.securityGroups.groupName</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.subnetId</p> </li> <li> <p>resource.instanceDetails.networkInterfaces.vpcId</p> </li> <li> <p>resource.instanceDetails.tags.key</p> </li> <li> <p>resource.instanceDetails.tags.value</p> </li> <li> <p>resource.resourceType</p> </li> <li> <p>service.action.actionType</p> </li> <li> <p>service.action.awsApiCallAction.api</p> </li> <li> <p>service.action.awsApiCallAction.callerType</p> </li> <li> <p>service.action.awsApiCallAction.errorCode</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.awsApiCallAction.serviceName</p> </li> <li> <p>service.action.dnsRequestAction.domain</p> </li> <li> <p>service.action.networkConnectionAction.blocked</p> </li> <li> <p>service.action.networkConnectionAction.connectionDirection</p> </li> <li> <p>service.action.networkConnectionAction.localPortDetails.port</p> </li> <li> <p>service.action.networkConnectionAction.protocol</p> </li> <li> <p>service.action.networkConnectionAction.localIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.city.cityName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.country.countryName</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.ipAddressV4</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asn</p> </li> <li> <p>service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg</p> </li> <li> <p>service.action.networkConnectionAction.remotePortDetails.port</p> </li> <li> <p>service.additionalInfo.threatListName</p> </li> <li> <p>service.archived</p> <p>When this attribute is set to TRUE, only archived findings are listed. When it's set to FALSE, only unarchived findings are listed. When this attribute is not set, all existing findings are listed.</p> </li> <li> <p>service.resourceRole</p> </li> <li> <p>severity</p> </li> <li> <p>type</p> </li> <li> <p>updatedAt</p> <p>Type: ISO 8601 string format: YYYY-MM-DDTHH:MM:SS.SSSZ or YYYY-MM-DDTHH:MM:SSZ depending on whether the value contains milliseconds.</p> </li> </ul>",
           "locationName":"findingCriteria"
         },
         "ClientToken":{
@@ -1511,7 +1511,7 @@
         },
         "AccountDetails":{
           "shape":"AccountDetails",
-          "documentation":"<p>A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.</p>",
+          "documentation":"<p>A list of account ID and email address pairs of the accounts that you want to associate with the GuardDuty administrator account.</p>",
           "locationName":"accountDetails"
         }
       }
@@ -1972,12 +1972,12 @@
         },
         "MemberAccountLimitReached":{
           "shape":"Boolean",
-          "documentation":"<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator master account.</p>",
+          "documentation":"<p>Indicates whether the maximum number of allowed member accounts are already associated with the delegated administrator account for your organization.</p>",
           "locationName":"memberAccountLimitReached"
         },
         "DataSources":{
           "shape":"OrganizationDataSourceConfigurationsResult",
-          "documentation":"<p>An object that describes which data sources are enabled automatically for member accounts.</p>",
+          "documentation":"<p>Describes which data sources are enabled automatically for member accounts.</p>",
           "locationName":"dataSources"
         }
       }
@@ -2154,13 +2154,13 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the master account.</p>",
+          "documentation":"<p>The unique ID of the detector of the GuardDuty account whose members you want to disassociate from the administrator account.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
         "AccountIds":{
           "shape":"AccountIds",
-          "documentation":"<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the master account.</p>",
+          "documentation":"<p>A list of account IDs of the GuardDuty member accounts that you want to disassociate from the administrator account.</p>",
           "locationName":"accountIds"
         }
       }
@@ -2509,7 +2509,7 @@
         },
         "DataSources":{
           "shape":"DataSourceConfigurationsResult",
-          "documentation":"<p>An object that describes which data sources are enabled for the detector.</p>",
+          "documentation":"<p>Describes which data sources are enabled for the detector.</p>",
           "locationName":"dataSources"
         },
         "Tags":{
@@ -2742,7 +2742,7 @@
       "members":{
         "Master":{
           "shape":"Master",
-          "documentation":"<p>The master account details.</p>",
+          "documentation":"<p>The administrator account details.</p>",
           "locationName":"master"
         }
       }
@@ -2756,7 +2756,7 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The detector ID for the master account.</p>",
+          "documentation":"<p>The detector ID for the administrator account.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
@@ -3418,7 +3418,7 @@
       "members":{
         "AdminAccounts":{
           "shape":"AdminAccounts",
-          "documentation":"<p>An AdminAccounts object that includes a list of accounts configured as GuardDuty delegated administrators.</p>",
+          "documentation":"<p>A list of accounts configured as GuardDuty delegated administrators.</p>",
           "locationName":"adminAccounts"
         },
         "NextToken":{
@@ -3568,17 +3568,17 @@
       "members":{
         "AccountId":{
           "shape":"AccountId",
-          "documentation":"<p>The ID of the account used as the master account.</p>",
+          "documentation":"<p>The ID of the account used as the administrator account.</p>",
           "locationName":"accountId"
         },
         "InvitationId":{
           "shape":"String",
-          "documentation":"<p>The value used to validate the master account to the member account.</p>",
+          "documentation":"<p>The value used to validate the administrator account to the member account.</p>",
           "locationName":"invitationId"
         },
         "RelationshipStatus":{
           "shape":"String",
-          "documentation":"<p>The status of the relationship between the master and member accounts.</p>",
+          "documentation":"<p>The status of the relationship between the administrator and member accounts.</p>",
           "locationName":"relationshipStatus"
         },
         "InvitedAt":{
@@ -3587,7 +3587,7 @@
           "locationName":"invitedAt"
         }
       },
-      "documentation":"<p>Contains information about the master account and invitation.</p>"
+      "documentation":"<p>Contains information about the administrator account and invitation.</p>"
     },
     "MaxResults":{
       "type":"integer",
@@ -3616,7 +3616,7 @@
         },
         "MasterId":{
           "shape":"String",
-          "documentation":"<p>The master account ID.</p>",
+          "documentation":"<p>The administrator account ID.</p>",
           "locationName":"masterId"
         },
         "Email":{
@@ -3626,7 +3626,7 @@
         },
         "RelationshipStatus":{
           "shape":"String",
-          "documentation":"<p>The status of the relationship between the member and the master.</p>",
+          "documentation":"<p>The status of the relationship between the member and the administrator.</p>",
           "locationName":"relationshipStatus"
         },
         "InvitedAt":{
@@ -4255,7 +4255,7 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The unique ID of the detector of the GuardDuty master account associated with the member accounts to monitor.</p>",
+          "documentation":"<p>The unique ID of the detector of the GuardDuty administrator account associated with the member accounts to monitor.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
@@ -4286,7 +4286,7 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The unique ID of the detector associated with the GuardDuty master account that is monitoring member accounts.</p>",
+          "documentation":"<p>The unique ID of the detector associated with the GuardDuty administrator account that is monitoring member accounts.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
@@ -4550,7 +4550,7 @@
         },
         "DataSources":{
           "shape":"DataSourceConfigurations",
-          "documentation":"<p>An object that describes which data sources will be updated.</p>",
+          "documentation":"<p>Describes which data sources will be updated.</p>",
           "locationName":"dataSources"
         }
       }
@@ -4698,7 +4698,7 @@
       "members":{
         "DetectorId":{
           "shape":"DetectorId",
-          "documentation":"<p>The detector ID of the master account.</p>",
+          "documentation":"<p>The detector ID of the administrator account.</p>",
           "location":"uri",
           "locationName":"detectorId"
         },
@@ -4709,7 +4709,7 @@
         },
         "DataSources":{
           "shape":"DataSourceConfigurations",
-          "documentation":"<p>An object describes which data sources will be updated.</p>",
+          "documentation":"<p>Describes which data sources will be updated.</p>",
           "locationName":"dataSources"
         }
       }
@@ -4745,7 +4745,7 @@
         },
         "DataSources":{
           "shape":"OrganizationDataSourceConfigurations",
-          "documentation":"<p>An object describes which data sources will be updated.</p>",
+          "documentation":"<p>Describes which data sources will be updated.</p>",
           "locationName":"dataSources"
         }
       }
@@ -4812,7 +4812,7 @@
         },
         "Location":{
           "shape":"Location",
-          "documentation":"<p>The updated URI of the file that contains the ThreateIntelSet. For example: https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key.</p>",
+          "documentation":"<p>The updated URI of the file that contains the ThreateIntelSet.</p>",
           "locationName":"location"
         },
         "Activate":{
diff --git a/aws-java-sdk-models/src/main/resources/models/healthlake-2017-07-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/healthlake-2017-07-01-intermediate.json
index 7200e5a2a70c..046bf27a5f27 100644
--- a/aws-java-sdk-models/src/main/resources/models/healthlake-2017-07-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/healthlake-2017-07-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/identitystore-2020-06-15-intermediate.json b/aws-java-sdk-models/src/main/resources/models/identitystore-2020-06-15-intermediate.json
index 47b98afc9a00..e4fd87e6dba5 100644
--- a/aws-java-sdk-models/src/main/resources/models/identitystore-2020-06-15-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/identitystore-2020-06-15-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-intermediate.json b/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-intermediate.json
index 3a6eea5c7d1e..f9b9bff33c30 100644
--- a/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
@@ -266,7 +266,7 @@
       "asyncReturnType" : "BatchPutAssetPropertyValueResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Sends a list of asset property values to AWS IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html\">Ingesting data using the API</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>To identify an asset property, you must specify one of the following:</p> <ul> <li> <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p> </li> <li> <p>A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p> </li> </ul> <important> <p>With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15 minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.</p> <p>For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>, then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV.</p> </important> <p>AWS IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action\">BatchPutAssetPropertyValue authorization</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "documentation" : "<p>Sends a list of asset property values to AWS IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html\">Ingesting data using the API</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>To identify an asset property, you must specify one of the following:</p> <ul> <li> <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p> </li> <li> <p>A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p> </li> </ul> <important> <p>With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.</p> <p>For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>, then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV.</p> </important> <p>AWS IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action\">BatchPutAssetPropertyValue authorization</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -689,56 +689,6 @@
       },
       "syncReturnType" : "CreatePortalResult"
     },
-    "CreatePresignedPortalUrl" : {
-      "asyncCallableType" : "java.util.concurrent.Callable<CreatePresignedPortalUrlResult>",
-      "asyncFutureType" : "java.util.concurrent.Future<CreatePresignedPortalUrlResult>",
-      "asyncHandlerType" : "com.amazonaws.handlers.AsyncHandler<CreatePresignedPortalUrlRequest, CreatePresignedPortalUrlResult>",
-      "asyncReturnType" : "CreatePresignedPortalUrlResult",
-      "authenticated" : true,
-      "deprecated" : false,
-      "documentation" : "<p>Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL to that portal. The URL contains an authentication token that lets the IAM user access the portal.</p>",
-      "endpointCacheRequired" : false,
-      "endpointDiscovery" : null,
-      "endpointOperation" : false,
-      "endpointTrait" : {
-        "hostPrefix" : "monitor."
-      },
-      "exceptions" : [ {
-        "exceptionName" : "InvalidRequestException",
-        "documentation" : "<p>The request isn't valid. This can occur if your request contains malformed JSON or unsupported characters. Check your request and try again.</p>",
-        "httpStatusCode" : 400
-      }, {
-        "exceptionName" : "InternalFailureException",
-        "documentation" : "<p>AWS IoT SiteWise can't process your request right now. Try again later.</p>",
-        "httpStatusCode" : 500
-      }, {
-        "exceptionName" : "ThrottlingException",
-        "documentation" : "<p>Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise assets that can be created per second, the allowed number of messages per second, and so on.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-        "httpStatusCode" : 429
-      } ],
-      "hasBlobMemberAsPayload" : false,
-      "hostPrefixProcessor" : {
-        "c2jNames" : [ ],
-        "hostWithStringSpecifier" : "monitor."
-      },
-      "input" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CreatePresignedPortalUrlRequest",
-        "variableName" : "createPresignedPortalUrlRequest",
-        "variableType" : "CreatePresignedPortalUrlRequest",
-        "documentation" : "",
-        "simpleType" : "CreatePresignedPortalUrlRequest",
-        "variableSetterType" : "CreatePresignedPortalUrlRequest"
-      },
-      "inputStreamPropertyName" : null,
-      "methodName" : "createPresignedPortalUrl",
-      "operationName" : "CreatePresignedPortalUrl",
-      "returnType" : {
-        "returnType" : "CreatePresignedPortalUrlResult",
-        "documentation" : null
-      },
-      "syncReturnType" : "CreatePresignedPortalUrlResult"
-    },
     "CreateProject" : {
       "asyncCallableType" : "java.util.concurrent.Callable<CreateProjectResult>",
       "asyncFutureType" : "java.util.concurrent.Future<CreateProjectResult>",
@@ -2104,6 +2054,60 @@
       },
       "syncReturnType" : "ListAssetModelsResult"
     },
+    "ListAssetRelationships" : {
+      "asyncCallableType" : "java.util.concurrent.Callable<ListAssetRelationshipsResult>",
+      "asyncFutureType" : "java.util.concurrent.Future<ListAssetRelationshipsResult>",
+      "asyncHandlerType" : "com.amazonaws.handlers.AsyncHandler<ListAssetRelationshipsRequest, ListAssetRelationshipsResult>",
+      "asyncReturnType" : "ListAssetRelationshipsResult",
+      "authenticated" : true,
+      "deprecated" : false,
+      "documentation" : "<p>Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's root asset and all associated assets between that asset and its root.</p>",
+      "endpointCacheRequired" : false,
+      "endpointDiscovery" : null,
+      "endpointOperation" : false,
+      "endpointTrait" : {
+        "hostPrefix" : "model."
+      },
+      "exceptions" : [ {
+        "exceptionName" : "InvalidRequestException",
+        "documentation" : "<p>The request isn't valid. This can occur if your request contains malformed JSON or unsupported characters. Check your request and try again.</p>",
+        "httpStatusCode" : 400
+      }, {
+        "exceptionName" : "InternalFailureException",
+        "documentation" : "<p>AWS IoT SiteWise can't process your request right now. Try again later.</p>",
+        "httpStatusCode" : 500
+      }, {
+        "exceptionName" : "ResourceNotFoundException",
+        "documentation" : "<p>The requested resource can't be found.</p>",
+        "httpStatusCode" : 404
+      }, {
+        "exceptionName" : "ThrottlingException",
+        "documentation" : "<p>Your request exceeded a rate limit. For example, you might have exceeded the number of AWS IoT SiteWise assets that can be created per second, the allowed number of messages per second, and so on.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "httpStatusCode" : 429
+      } ],
+      "hasBlobMemberAsPayload" : false,
+      "hostPrefixProcessor" : {
+        "c2jNames" : [ ],
+        "hostWithStringSpecifier" : "model."
+      },
+      "input" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "ListAssetRelationshipsRequest",
+        "variableName" : "listAssetRelationshipsRequest",
+        "variableType" : "ListAssetRelationshipsRequest",
+        "documentation" : "",
+        "simpleType" : "ListAssetRelationshipsRequest",
+        "variableSetterType" : "ListAssetRelationshipsRequest"
+      },
+      "inputStreamPropertyName" : null,
+      "methodName" : "listAssetRelationships",
+      "operationName" : "ListAssetRelationships",
+      "returnType" : {
+        "returnType" : "ListAssetRelationshipsResult",
+        "documentation" : null
+      },
+      "syncReturnType" : "ListAssetRelationshipsResult"
+    },
     "ListAssets" : {
       "asyncCallableType" : "java.util.concurrent.Callable<ListAssetsResult>",
       "asyncFutureType" : "java.util.concurrent.Future<ListAssetsResult>",
@@ -2490,6 +2494,18 @@
         "exceptionName" : "ResourceNotFoundException",
         "documentation" : "<p>The requested resource can't be found.</p>",
         "httpStatusCode" : 404
+      }, {
+        "exceptionName" : "ConflictingOperationException",
+        "documentation" : "<p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>",
+        "httpStatusCode" : 409
+      }, {
+        "exceptionName" : "LimitExceededException",
+        "documentation" : "<p>You've reached the limit for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "httpStatusCode" : 410
+      }, {
+        "exceptionName" : "UnauthorizedException",
+        "documentation" : "<p>You are not authorized.</p>",
+        "httpStatusCode" : 401
       } ],
       "hasBlobMemberAsPayload" : false,
       "hostPrefixProcessor" : null,
@@ -2650,6 +2666,18 @@
         "exceptionName" : "ResourceNotFoundException",
         "documentation" : "<p>The requested resource can't be found.</p>",
         "httpStatusCode" : 404
+      }, {
+        "exceptionName" : "ConflictingOperationException",
+        "documentation" : "<p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>",
+        "httpStatusCode" : 409
+      }, {
+        "exceptionName" : "LimitExceededException",
+        "documentation" : "<p>You've reached the limit for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "httpStatusCode" : 410
+      }, {
+        "exceptionName" : "UnauthorizedException",
+        "documentation" : "<p>You are not authorized.</p>",
+        "httpStatusCode" : 401
       }, {
         "exceptionName" : "TooManyTagsException",
         "documentation" : "<p>You've reached the limit for the number of tags allowed for a resource. For more information, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions\">Tag naming limits and requirements</a> in the <i>AWS General Reference</i>.</p>",
@@ -2703,6 +2731,18 @@
         "exceptionName" : "ResourceNotFoundException",
         "documentation" : "<p>The requested resource can't be found.</p>",
         "httpStatusCode" : 404
+      }, {
+        "exceptionName" : "ConflictingOperationException",
+        "documentation" : "<p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>",
+        "httpStatusCode" : 409
+      }, {
+        "exceptionName" : "LimitExceededException",
+        "documentation" : "<p>You've reached the limit for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "httpStatusCode" : 410
+      }, {
+        "exceptionName" : "UnauthorizedException",
+        "documentation" : "<p>You are not authorized.</p>",
+        "httpStatusCode" : 401
       } ],
       "hasBlobMemberAsPayload" : false,
       "hostPrefixProcessor" : null,
@@ -5534,55 +5574,8 @@
       },
       "wrapper" : false
     },
-    "AssetErrorCode" : {
-      "c2jName" : "AssetErrorCode",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "INTERNAL_FAILURE",
-        "value" : "INTERNAL_FAILURE"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetErrorCode",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "AssetErrorCode",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "AssetErrorCode",
-        "variableName" : "assetErrorCode",
-        "variableType" : "AssetErrorCode",
-        "documentation" : null,
-        "simpleType" : "AssetErrorCode",
-        "variableSetterType" : "AssetErrorCode"
-      },
-      "wrapper" : false
-    },
-    "AssetErrorDetails" : {
-      "c2jName" : "AssetErrorDetails",
+    "AssetCompositeModel" : {
+      "c2jName" : "AssetCompositeModel",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -5590,11 +5583,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains error details for the requested associate project asset action.</p>",
+      "documentation" : "<p>Contains information about a composite model in an asset. This object contains the asset's properties that you define in the composite model.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetErrorDetails",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetCompositeModel",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -5602,16 +5595,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The name of the composite model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -5626,11 +5619,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetId",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -5642,14 +5635,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -5659,28 +5652,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "code",
-        "c2jShape" : "AssetErrorCode",
+        "c2jName" : "description",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The error code.</p>",
+        "documentation" : "<p>The description of the composite model.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "AssetErrorCode",
-        "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
-        "fluentSetterMethodName" : "withCode",
-        "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see AssetErrorCode*/",
-        "getterMethodName" : "getCode",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDescription",
+        "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+        "getterMethodName" : "getDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -5695,11 +5688,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "code",
+          "marshallLocationName" : "description",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "code",
+          "unmarshallLocationName" : "description",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -5711,14 +5704,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Code",
+        "name" : "Description",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see AssetErrorCode*/",
-        "setterMethodName" : "setCode",
+        "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+        "setterMethodName" : "setDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "code",
+          "variableName" : "description",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -5728,28 +5721,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
+        "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "code",
+          "variableName" : "description",
           "variableType" : "String",
-          "documentation" : "<p>The error code.</p>",
+          "documentation" : "<p>The description of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "message",
-        "c2jShape" : "AssetErrorMessage",
+        "c2jName" : "type",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The error message.</p>",
+        "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withMessage",
-        "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
-        "getterMethodName" : "getMessage",
+        "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+        "getterMethodName" : "getType",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -5764,11 +5757,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "message",
+          "marshallLocationName" : "type",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "message",
+          "unmarshallLocationName" : "type",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -5780,14 +5773,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Message",
+        "name" : "Type",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
-        "setterMethodName" : "setMessage",
+        "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+        "setterMethodName" : "setType",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "message",
+          "variableName" : "type",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -5797,30 +5790,183 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "message",
+          "variableName" : "type",
           "variableType" : "String",
-          "documentation" : "<p>The error message.</p>",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "properties",
+        "c2jShape" : "AssetProperties",
+        "deprecated" : false,
+        "documentation" : "<p>The asset properties that this composite model defines.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@param properties The asset properties that this composite model defines.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProperties",
+        "getterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@return The asset properties that this composite model defines.*/",
+        "getterMethodName" : "getProperties",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetProperty>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "properties",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "properties",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetProperty",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetProperty",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetProperty",
+              "variableName" : "member",
+              "variableType" : "AssetProperty",
+              "documentation" : "",
+              "simpleType" : "AssetProperty",
+              "variableSetterType" : "AssetProperty"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetProperty",
+              "variableName" : "member",
+              "variableType" : "AssetProperty",
+              "documentation" : "",
+              "simpleType" : "AssetProperty",
+              "variableSetterType" : "AssetProperty"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetProperty",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetProperty",
+          "templateImplType" : "java.util.ArrayList<AssetProperty>",
+          "templateType" : "java.util.List<AssetProperty>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Properties",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@param properties The asset properties that this composite model defines.*/",
+        "setterMethodName" : "setProperties",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetProperty>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetProperty>",
+          "documentation" : "",
+          "simpleType" : "List<AssetProperty>",
+          "variableSetterType" : "java.util.Collection<AssetProperty>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset properties that this composite model defines.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetProperty>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetProperty>",
+          "documentation" : "<p>The asset properties that this composite model defines.</p>",
+          "simpleType" : "List<AssetProperty>",
+          "variableSetterType" : "java.util.Collection<AssetProperty>"
+        },
+        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "Description" : {
+          "c2jName" : "description",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The description of the composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDescription",
+          "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+          "getterMethodName" : "getDescription",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -5835,11 +5981,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetId",
+            "marshallLocationName" : "description",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
+            "unmarshallLocationName" : "description",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -5851,14 +5997,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "Description",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+          "setterMethodName" : "setDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "description",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -5868,29 +6014,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "description",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
+            "documentation" : "<p>The description of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Code" : {
-          "c2jName" : "code",
-          "c2jShape" : "AssetErrorCode",
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The error code.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "AssetErrorCode",
-          "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
-          "fluentSetterMethodName" : "withCode",
-          "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see AssetErrorCode*/",
-          "getterMethodName" : "getCode",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
+          "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -5905,11 +6051,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "code",
+            "marshallLocationName" : "name",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "code",
+            "unmarshallLocationName" : "name",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -5921,14 +6067,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Code",
+          "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see AssetErrorCode*/",
-          "setterMethodName" : "setCode",
+          "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
+          "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "code",
+            "variableName" : "name",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -5938,31 +6084,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
+          "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "code",
+            "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The error code.</p>",
+            "documentation" : "<p>The name of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Message" : {
-          "c2jName" : "message",
-          "c2jShape" : "AssetErrorMessage",
+        "Properties" : {
+          "c2jName" : "properties",
+          "c2jShape" : "AssetProperties",
           "deprecated" : false,
-          "documentation" : "<p>The error message.</p>",
+          "documentation" : "<p>The asset properties that this composite model defines.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withMessage",
-          "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
-          "getterMethodName" : "getMessage",
+          "fluentSetterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@param properties The asset properties that this composite model defines.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProperties",
+          "getterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@return The asset properties that this composite model defines.*/",
+          "getterMethodName" : "getProperties",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.List<AssetProperty>",
             "documentation" : null
           },
           "http" : {
@@ -5975,315 +6121,146 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "message",
+            "marshallLocationName" : "properties",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "message",
+            "unmarshallLocationName" : "properties",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Message",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
-          "setterMethodName" : "setMessage",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "message",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "message",
-            "variableType" : "String",
-            "documentation" : "<p>The error message.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetId", "code", "message" ],
-      "shapeName" : "AssetErrorDetails",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "AssetErrorDetails",
-        "variableName" : "assetErrorDetails",
-        "variableType" : "AssetErrorDetails",
-        "documentation" : null,
-        "simpleType" : "AssetErrorDetails",
-        "variableSetterType" : "AssetErrorDetails"
-      },
-      "wrapper" : false
-    },
-    "AssetHierarchy" : {
-      "c2jName" : "AssetHierarchy",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>Describes an asset hierarchy that contains a hierarchy's name and ID.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetHierarchy",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "id",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
-        "getterMethodName" : "getId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "id",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Id",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
-        "setterMethodName" : "setId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
-        "deprecated" : false,
-        "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-        "getterMethodName" : "getName",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "name",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Name",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-        "setterMethodName" : "setName",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
-          "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
-          "getterMethodName" : "getId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "id",
-            "uri" : false
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetProperty",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetProperty",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetProperty",
+                "variableName" : "member",
+                "variableType" : "AssetProperty",
+                "documentation" : "",
+                "simpleType" : "AssetProperty",
+                "variableSetterType" : "AssetProperty"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetProperty",
+                "variableName" : "member",
+                "variableType" : "AssetProperty",
+                "documentation" : "",
+                "simpleType" : "AssetProperty",
+                "variableSetterType" : "AssetProperty"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetProperty",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetProperty",
+            "templateImplType" : "java.util.ArrayList<AssetProperty>",
+            "templateType" : "java.util.List<AssetProperty>"
           },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Id",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Properties",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n@param properties The asset properties that this composite model defines.*/",
+          "setterMethodName" : "setProperties",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.List<AssetProperty>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetProperty>",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "List<AssetProperty>",
+            "variableSetterType" : "java.util.Collection<AssetProperty>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The asset properties that this composite model defines.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset properties that this composite model defines.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.List<AssetProperty>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetProperty>",
+            "documentation" : "<p>The asset properties that this composite model defines.</p>",
+            "simpleType" : "List<AssetProperty>",
+            "variableSetterType" : "java.util.Collection<AssetProperty>"
           },
           "xmlNameSpaceUri" : null
         },
-        "Name" : {
-          "c2jName" : "name",
+        "Type" : {
+          "c2jName" : "type",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-          "getterMethodName" : "getName",
+          "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -6298,11 +6275,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "name",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "name",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -6314,14 +6291,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Name",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-          "setterMethodName" : "setName",
+          "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "type",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -6331,13 +6308,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "type",
             "variableType" : "String",
-            "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+            "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -6347,8 +6324,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "name" ],
-      "shapeName" : "AssetHierarchy",
+      "required" : [ "name", "type", "properties" ],
+      "shapeName" : "AssetCompositeModel",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -6357,17 +6334,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetHierarchy",
-        "variableName" : "assetHierarchy",
-        "variableType" : "AssetHierarchy",
+        "variableDeclarationType" : "AssetCompositeModel",
+        "variableName" : "assetCompositeModel",
+        "variableType" : "AssetCompositeModel",
         "documentation" : null,
-        "simpleType" : "AssetHierarchy",
-        "variableSetterType" : "AssetHierarchy"
+        "simpleType" : "AssetCompositeModel",
+        "variableSetterType" : "AssetCompositeModel"
       },
       "wrapper" : false
     },
-    "AssetModelHierarchy" : {
-      "c2jName" : "AssetModelHierarchy",
+    "AssetErrorCode" : {
+      "c2jName" : "AssetErrorCode",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -6375,11 +6352,58 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Describes an asset hierarchy that contains a hierarchy's name, ID, and child asset model ID that specifies the type of asset that can be in this hierarchy.</p>",
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "INTERNAL_FAILURE",
+        "value" : "INTERNAL_FAILURE"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetErrorCode",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AssetErrorCode",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetErrorCode",
+        "variableName" : "assetErrorCode",
+        "variableType" : "AssetErrorCode",
+        "documentation" : null,
+        "simpleType" : "AssetErrorCode",
+        "variableSetterType" : "AssetErrorCode"
+      },
+      "wrapper" : false
+    },
+    "AssetErrorDetails" : {
+      "c2jName" : "AssetErrorDetails",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains error details for the requested associate project asset action.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelHierarchy",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetErrorDetails",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -6387,16 +6411,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "id",
+        "c2jName" : "assetId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
+        "documentation" : "<p>The ID of the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
-        "getterMethodName" : "getId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -6411,11 +6435,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
+          "marshallLocationName" : "assetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "id",
+          "unmarshallLocationName" : "assetId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -6427,14 +6451,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Id",
+        "name" : "AssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
-        "setterMethodName" : "setId",
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "assetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -6444,28 +6468,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "assetId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
+        "c2jName" : "code",
+        "c2jShape" : "AssetErrorCode",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+        "documentation" : "<p>The error code.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-        "getterMethodName" : "getName",
+        "enumType" : "AssetErrorCode",
+        "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
+        "fluentSetterMethodName" : "withCode",
+        "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see AssetErrorCode*/",
+        "getterMethodName" : "getCode",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -6480,11 +6504,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
+          "marshallLocationName" : "code",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "name",
+          "unmarshallLocationName" : "code",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -6496,14 +6520,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Name",
+        "name" : "Code",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-        "setterMethodName" : "setName",
+        "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see AssetErrorCode*/",
+        "setterMethodName" : "setCode",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "code",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -6513,28 +6537,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "code",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+          "documentation" : "<p>The error code.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "childAssetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "message",
+        "c2jShape" : "AssetErrorMessage",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+        "documentation" : "<p>The error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withChildAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@return The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
-        "getterMethodName" : "getChildAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withMessage",
+        "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
+        "getterMethodName" : "getMessage",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -6549,11 +6573,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "childAssetModelId",
+          "marshallLocationName" : "message",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "childAssetModelId",
+          "unmarshallLocationName" : "message",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -6565,14 +6589,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ChildAssetModelId",
+        "name" : "Message",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
-        "setterMethodName" : "setChildAssetModelId",
+        "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
+        "setterMethodName" : "setMessage",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetModelId",
+          "variableName" : "message",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -6582,30 +6606,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetModelId",
+          "variableName" : "message",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+          "documentation" : "<p>The error message.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ChildAssetModelId" : {
-          "c2jName" : "childAssetModelId",
+        "AssetId" : {
+          "c2jName" : "assetId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withChildAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@return The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
-          "getterMethodName" : "getChildAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -6620,11 +6644,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "childAssetModelId",
+            "marshallLocationName" : "assetId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "childAssetModelId",
+            "unmarshallLocationName" : "assetId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -6636,14 +6660,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ChildAssetModelId",
+          "name" : "AssetId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
-          "setterMethodName" : "setChildAssetModelId",
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetModelId",
+            "variableName" : "assetId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -6653,29 +6677,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetModelId",
+            "variableName" : "assetId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+            "documentation" : "<p>The ID of the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
+        "Code" : {
+          "c2jName" : "code",
+          "c2jShape" : "AssetErrorCode",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
+          "documentation" : "<p>The error code.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
-          "getterMethodName" : "getId",
+          "enumType" : "AssetErrorCode",
+          "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
+          "fluentSetterMethodName" : "withCode",
+          "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see AssetErrorCode*/",
+          "getterMethodName" : "getCode",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -6690,11 +6714,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
+            "marshallLocationName" : "code",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "code",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -6706,14 +6730,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Id",
+          "name" : "Code",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see AssetErrorCode*/",
+          "setterMethodName" : "setCode",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "code",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -6723,29 +6747,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetErrorCode*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "code",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
+            "documentation" : "<p>The error code.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Name" : {
-          "c2jName" : "name",
-          "c2jShape" : "Name",
+        "Message" : {
+          "c2jName" : "message",
+          "c2jShape" : "AssetErrorMessage",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+          "documentation" : "<p>The error message.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-          "getterMethodName" : "getName",
+          "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withMessage",
+          "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
+          "getterMethodName" : "getMessage",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -6760,11 +6784,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "name",
+            "marshallLocationName" : "message",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "name",
+            "unmarshallLocationName" : "message",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -6776,14 +6800,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Name",
+          "name" : "Message",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
-          "setterMethodName" : "setName",
+          "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
+          "setterMethodName" : "setMessage",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "message",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -6793,13 +6817,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "message",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+            "documentation" : "<p>The error message.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -6809,8 +6833,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "name", "childAssetModelId" ],
-      "shapeName" : "AssetModelHierarchy",
+      "required" : [ "assetId", "code", "message" ],
+      "shapeName" : "AssetErrorDetails",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -6819,17 +6843,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelHierarchy",
-        "variableName" : "assetModelHierarchy",
-        "variableType" : "AssetModelHierarchy",
+        "variableDeclarationType" : "AssetErrorDetails",
+        "variableName" : "assetErrorDetails",
+        "variableType" : "AssetErrorDetails",
         "documentation" : null,
-        "simpleType" : "AssetModelHierarchy",
-        "variableSetterType" : "AssetModelHierarchy"
+        "simpleType" : "AssetErrorDetails",
+        "variableSetterType" : "AssetErrorDetails"
       },
       "wrapper" : false
     },
-    "AssetModelHierarchyDefinition" : {
-      "c2jName" : "AssetModelHierarchyDefinition",
+    "AssetHierarchy" : {
+      "c2jName" : "AssetHierarchy",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -6837,11 +6861,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains an asset model hierarchy used in asset model creation. An asset model hierarchy determines the kind (or type) of asset that can belong to a hierarchy.</p>",
+      "documentation" : "<p>Describes an asset hierarchy that contains a hierarchy's name and ID.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelHierarchyDefinition",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetHierarchy",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -6849,16 +6873,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
+        "c2jName" : "id",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
+        "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@return The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
-        "getterMethodName" : "getName",
+        "fluentSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -6873,11 +6897,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "name",
+          "unmarshallLocationName" : "id",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -6889,14 +6913,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Name",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
-        "setterMethodName" : "setName",
+        "setterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -6906,28 +6930,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
+          "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "childAssetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
+        "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withChildAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@return The ID of an asset model for this hierarchy.*/",
-        "getterMethodName" : "getChildAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -6942,11 +6966,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "childAssetModelId",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "childAssetModelId",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -6958,14 +6982,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ChildAssetModelId",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.*/",
-        "setterMethodName" : "setChildAssetModelId",
+        "setterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetModelId",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -6975,30 +6999,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetModelId",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
+          "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ChildAssetModelId" : {
-          "c2jName" : "childAssetModelId",
+        "Id" : {
+          "c2jName" : "id",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
+          "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withChildAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@return The ID of an asset model for this hierarchy.*/",
-          "getterMethodName" : "getChildAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -7013,11 +7037,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "childAssetModelId",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "childAssetModelId",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -7029,14 +7053,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ChildAssetModelId",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.*/",
-          "setterMethodName" : "setChildAssetModelId",
+          "setterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetModelId",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -7046,13 +7070,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetModelId",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
+            "documentation" : "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -7062,12 +7086,12 @@
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
+          "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@return The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
+          "getterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -7101,7 +7125,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
+          "setterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -7116,13 +7140,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
+            "documentation" : "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -7132,8 +7156,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "name", "childAssetModelId" ],
-      "shapeName" : "AssetModelHierarchyDefinition",
+      "required" : [ "name" ],
+      "shapeName" : "AssetHierarchy",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -7142,17 +7166,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelHierarchyDefinition",
-        "variableName" : "assetModelHierarchyDefinition",
-        "variableType" : "AssetModelHierarchyDefinition",
+        "variableDeclarationType" : "AssetHierarchy",
+        "variableName" : "assetHierarchy",
+        "variableType" : "AssetHierarchy",
         "documentation" : null,
-        "simpleType" : "AssetModelHierarchyDefinition",
-        "variableSetterType" : "AssetModelHierarchyDefinition"
+        "simpleType" : "AssetHierarchy",
+        "variableSetterType" : "AssetHierarchy"
       },
       "wrapper" : false
     },
-    "AssetModelProperty" : {
-      "c2jName" : "AssetModelProperty",
+    "AssetHierarchyInfo" : {
+      "c2jName" : "AssetHierarchyInfo",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -7160,11 +7184,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains information about an asset model property.</p>",
+      "documentation" : "<p>Contains information about a parent asset and a child asset that are related through an asset hierarchy.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelProperty",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetHierarchyInfo",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -7172,16 +7196,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "id",
+        "c2jName" : "parentAssetId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model property.</p>",
+        "documentation" : "<p>The ID of the parent asset in this asset relationship.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@return The ID of the asset model property.*/",
-        "getterMethodName" : "getId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withParentAssetId",
+        "getterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@return The ID of the parent asset in this asset relationship.*/",
+        "getterMethodName" : "getParentAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -7196,11 +7220,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
+          "marshallLocationName" : "parentAssetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "id",
+          "unmarshallLocationName" : "parentAssetId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -7212,14 +7236,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Id",
+        "name" : "ParentAssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.*/",
-        "setterMethodName" : "setId",
+        "setterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.*/",
+        "setterMethodName" : "setParentAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "parentAssetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -7229,28 +7253,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "parentAssetId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model property.</p>",
+          "documentation" : "<p>The ID of the parent asset in this asset relationship.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
+        "c2jName" : "childAssetId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset model property.</p>",
+        "documentation" : "<p>The ID of the child asset in this asset relationship.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset model property.</p>\n@return The name of the asset model property.*/",
-        "getterMethodName" : "getName",
+        "fluentSetterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withChildAssetId",
+        "getterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@return The ID of the child asset in this asset relationship.*/",
+        "getterMethodName" : "getChildAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -7265,11 +7289,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
+          "marshallLocationName" : "childAssetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "name",
+          "unmarshallLocationName" : "childAssetId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -7281,14 +7305,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Name",
+        "name" : "ChildAssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.*/",
-        "setterMethodName" : "setName",
+        "setterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.*/",
+        "setterMethodName" : "setChildAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "childAssetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -7298,28 +7322,213 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "name",
+          "variableName" : "childAssetId",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset model property.</p>",
+          "documentation" : "<p>The ID of the child asset in this asset relationship.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "dataType",
-        "c2jShape" : "PropertyDataType",
+      } ],
+      "membersAsMap" : {
+        "ChildAssetId" : {
+          "c2jName" : "childAssetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the child asset in this asset relationship.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withChildAssetId",
+          "getterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@return The ID of the child asset in this asset relationship.*/",
+          "getterMethodName" : "getChildAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "childAssetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "childAssetId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ChildAssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.*/",
+          "setterMethodName" : "setChildAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "childAssetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the child asset in this asset relationship.</p>\n@param childAssetId The ID of the child asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "childAssetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the child asset in this asset relationship.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ParentAssetId" : {
+          "c2jName" : "parentAssetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the parent asset in this asset relationship.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withParentAssetId",
+          "getterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@return The ID of the parent asset in this asset relationship.*/",
+          "getterMethodName" : "getParentAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "parentAssetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "parentAssetId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ParentAssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.*/",
+          "setterMethodName" : "setParentAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "parentAssetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the parent asset in this asset relationship.</p>\n@param parentAssetId The ID of the parent asset in this asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "parentAssetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the parent asset in this asset relationship.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AssetHierarchyInfo",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetHierarchyInfo",
+        "variableName" : "assetHierarchyInfo",
+        "variableType" : "AssetHierarchyInfo",
+        "documentation" : null,
+        "simpleType" : "AssetHierarchyInfo",
+        "variableSetterType" : "AssetHierarchyInfo"
+      },
+      "wrapper" : false
+    },
+    "AssetModelCompositeModel" : {
+      "c2jName" : "AssetModelCompositeModel",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information about a composite model in an asset model. This object contains the asset property definitions that you define in the composite model.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelCompositeModel",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The data type of the asset model property.</p>",
+        "documentation" : "<p>The name of the composite model.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "PropertyDataType",
-        "fluentSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-        "fluentSetterMethodName" : "withDataType",
-        "getterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@return The data type of the asset model property.\n@see PropertyDataType*/",
-        "getterMethodName" : "getDataType",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -7334,11 +7543,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dataType",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dataType",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -7350,14 +7559,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DataType",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@see PropertyDataType*/",
-        "setterMethodName" : "setDataType",
+        "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -7367,28 +7576,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The data type of the asset model property.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "unit",
-        "c2jShape" : "PropertyUnit",
+        "c2jName" : "description",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+        "documentation" : "<p>The description of the composite model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withUnit",
-        "getterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
-        "getterMethodName" : "getUnit",
+        "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDescription",
+        "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+        "getterMethodName" : "getDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -7403,11 +7612,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "unit",
+          "marshallLocationName" : "description",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "unit",
+          "unmarshallLocationName" : "description",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -7419,14 +7628,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Unit",
+        "name" : "Description",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
-        "setterMethodName" : "setUnit",
+        "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+        "setterMethodName" : "setDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "unit",
+          "variableName" : "description",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -7436,30 +7645,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "unit",
+          "variableName" : "description",
           "variableType" : "String",
-          "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+          "documentation" : "<p>The description of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "type",
-        "c2jShape" : "PropertyType",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
+        "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withType",
-        "getterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@return The property type (see <code>PropertyType</code>).*/",
+        "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
         "getterMethodName" : "getType",
         "getterModel" : {
-          "returnType" : "PropertyType",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -7486,119 +7695,202 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
         "name" : "Type",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).*/",
+        "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
         "setterMethodName" : "setType",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyType",
+          "variableDeclarationType" : "String",
           "variableName" : "type",
-          "variableType" : "PropertyType",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "PropertyType",
-          "variableSetterType" : "PropertyType"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyType",
+          "variableDeclarationType" : "String",
           "variableName" : "type",
-          "variableType" : "PropertyType",
-          "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
-          "simpleType" : "PropertyType",
-          "variableSetterType" : "PropertyType"
+          "variableType" : "String",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "DataType" : {
-          "c2jName" : "dataType",
-          "c2jShape" : "PropertyDataType",
-          "deprecated" : false,
-          "documentation" : "<p>The data type of the asset model property.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "PropertyDataType",
-          "fluentSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-          "fluentSetterMethodName" : "withDataType",
-          "getterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@return The data type of the asset model property.\n@see PropertyDataType*/",
-          "getterMethodName" : "getDataType",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dataType",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "dataType",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "DataType",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@see PropertyDataType*/",
-          "setterMethodName" : "setDataType",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dataType",
-            "variableType" : "String",
+      }, {
+        "c2jName" : "properties",
+        "c2jShape" : "AssetModelProperties",
+        "deprecated" : false,
+        "documentation" : "<p>The asset property definitions for this composite model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProperties",
+        "getterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@return The asset property definitions for this composite model.*/",
+        "getterMethodName" : "getProperties",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelProperty>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "properties",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "properties",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelProperty",
+            "deprecated" : false,
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dataType",
-            "variableType" : "String",
-            "documentation" : "<p>The data type of the asset model property.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelProperty",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelProperty",
+              "variableName" : "member",
+              "variableType" : "AssetModelProperty",
+              "documentation" : "",
+              "simpleType" : "AssetModelProperty",
+              "variableSetterType" : "AssetModelProperty"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelProperty",
+              "variableName" : "member",
+              "variableType" : "AssetModelProperty",
+              "documentation" : "",
+              "simpleType" : "AssetModelProperty",
+              "variableSetterType" : "AssetModelProperty"
+            },
+            "xmlNameSpaceUri" : null
           },
-          "xmlNameSpaceUri" : null
+          "memberLocationName" : null,
+          "memberType" : "AssetModelProperty",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelProperty",
+          "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
+          "templateType" : "java.util.List<AssetModelProperty>"
         },
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Properties",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.*/",
+        "setterMethodName" : "setProperties",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetModelProperty>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelProperty>",
+          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetModelProperty>",
+          "documentation" : "<p>The asset property definitions for this composite model.</p>",
+          "simpleType" : "List<AssetModelProperty>",
+          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Description" : {
+          "c2jName" : "description",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model property.</p>",
+          "documentation" : "<p>The description of the composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@return The ID of the asset model property.*/",
-          "getterMethodName" : "getId",
+          "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDescription",
+          "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+          "getterMethodName" : "getDescription",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -7613,11 +7905,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
+            "marshallLocationName" : "description",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "description",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -7629,14 +7921,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Id",
+          "name" : "Description",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+          "setterMethodName" : "setDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "description",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -7646,13 +7938,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "description",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model property.</p>",
+            "documentation" : "<p>The description of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -7662,12 +7954,12 @@
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset model property.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset model property.</p>\n@return The name of the asset model property.*/",
+          "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -7701,7 +7993,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.*/",
+          "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -7716,31 +8008,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset model property.</p>",
+            "documentation" : "<p>The name of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Type" : {
-          "c2jName" : "type",
-          "c2jShape" : "PropertyType",
+        "Properties" : {
+          "c2jName" : "properties",
+          "c2jShape" : "AssetModelProperties",
           "deprecated" : false,
-          "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
+          "documentation" : "<p>The asset property definitions for this composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withType",
-          "getterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@return The property type (see <code>PropertyType</code>).*/",
-          "getterMethodName" : "getType",
+          "fluentSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProperties",
+          "getterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@return The asset property definitions for this composite model.*/",
+          "getterMethodName" : "getProperties",
           "getterModel" : {
-            "returnType" : "PropertyType",
+            "returnType" : "java.util.List<AssetModelProperty>",
             "documentation" : null
           },
           "http" : {
@@ -7753,62 +8045,146 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "type",
+            "marshallLocationName" : "properties",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "type",
+            "unmarshallLocationName" : "properties",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelProperty",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelProperty",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelProperty",
+                "variableName" : "member",
+                "variableType" : "AssetModelProperty",
+                "documentation" : "",
+                "simpleType" : "AssetModelProperty",
+                "variableSetterType" : "AssetModelProperty"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelProperty",
+                "variableName" : "member",
+                "variableType" : "AssetModelProperty",
+                "documentation" : "",
+                "simpleType" : "AssetModelProperty",
+                "variableSetterType" : "AssetModelProperty"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelProperty",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelProperty",
+            "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
+            "templateType" : "java.util.List<AssetModelProperty>"
+          },
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Type",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Properties",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).*/",
-          "setterMethodName" : "setType",
+          "setterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.*/",
+          "setterMethodName" : "setProperties",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyType",
-            "variableName" : "type",
-            "variableType" : "PropertyType",
+            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetModelProperty>",
             "documentation" : "",
-            "simpleType" : "PropertyType",
-            "variableSetterType" : "PropertyType"
+            "simpleType" : "List<AssetModelProperty>",
+            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyType",
-            "variableName" : "type",
-            "variableType" : "PropertyType",
-            "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
-            "simpleType" : "PropertyType",
-            "variableSetterType" : "PropertyType"
+            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetModelProperty>",
+            "documentation" : "<p>The asset property definitions for this composite model.</p>",
+            "simpleType" : "List<AssetModelProperty>",
+            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
           },
           "xmlNameSpaceUri" : null
         },
-        "Unit" : {
-          "c2jName" : "unit",
-          "c2jShape" : "PropertyUnit",
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withUnit",
-          "getterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
-          "getterMethodName" : "getUnit",
+          "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -7823,11 +8199,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "unit",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "unit",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -7839,14 +8215,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Unit",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
-          "setterMethodName" : "setUnit",
+          "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "unit",
+            "variableName" : "type",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -7856,13 +8232,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "unit",
+            "variableName" : "type",
             "variableType" : "String",
-            "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+            "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -7872,8 +8248,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "name", "dataType", "type" ],
-      "shapeName" : "AssetModelProperty",
+      "required" : [ "name", "type" ],
+      "shapeName" : "AssetModelCompositeModel",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -7882,17 +8258,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelProperty",
-        "variableName" : "assetModelProperty",
-        "variableType" : "AssetModelProperty",
+        "variableDeclarationType" : "AssetModelCompositeModel",
+        "variableName" : "assetModelCompositeModel",
+        "variableType" : "AssetModelCompositeModel",
         "documentation" : null,
-        "simpleType" : "AssetModelProperty",
-        "variableSetterType" : "AssetModelProperty"
+        "simpleType" : "AssetModelCompositeModel",
+        "variableSetterType" : "AssetModelCompositeModel"
       },
       "wrapper" : false
     },
-    "AssetModelPropertyDefinition" : {
-      "c2jName" : "AssetModelPropertyDefinition",
+    "AssetModelCompositeModelDefinition" : {
+      "c2jName" : "AssetModelCompositeModelDefinition",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -7900,11 +8276,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains an asset model property definition. This property definition is applied to all assets created from the asset model.</p>",
+      "documentation" : "<p>Contains a composite model definition in an asset model. This composite model definition is applied to all assets created from the asset model.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelPropertyDefinition",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelCompositeModelDefinition",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -7915,12 +8291,12 @@
         "c2jName" : "name",
         "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The name of the property definition.</p>",
+        "documentation" : "<p>The name of the composite model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the property definition.</p>\n@return The name of the property definition.*/",
+        "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -7954,7 +8330,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.*/",
+        "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -7969,28 +8345,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The name of the property definition.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "dataType",
-        "c2jShape" : "PropertyDataType",
+        "c2jName" : "description",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The data type of the property definition.</p>",
+        "documentation" : "<p>The description of the composite model.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "PropertyDataType",
-        "fluentSetterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-        "fluentSetterMethodName" : "withDataType",
-        "getterDocumentation" : "/**<p>The data type of the property definition.</p>\n@return The data type of the property definition.\n@see PropertyDataType*/",
-        "getterMethodName" : "getDataType",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDescription",
+        "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+        "getterMethodName" : "getDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -8005,11 +8381,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dataType",
+          "marshallLocationName" : "description",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dataType",
+          "unmarshallLocationName" : "description",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -8021,14 +8397,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DataType",
+        "name" : "Description",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@see PropertyDataType*/",
-        "setterMethodName" : "setDataType",
+        "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+        "setterMethodName" : "setDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "description",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -8038,28 +8414,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "description",
           "variableType" : "String",
-          "documentation" : "<p>The data type of the property definition.</p>",
+          "documentation" : "<p>The description of the composite model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "unit",
-        "c2jShape" : "PropertyUnit",
+        "c2jName" : "type",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+        "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withUnit",
-        "getterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
-        "getterMethodName" : "getUnit",
+        "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+        "getterMethodName" : "getType",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -8074,11 +8450,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "unit",
+          "marshallLocationName" : "type",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "unit",
+          "unmarshallLocationName" : "type",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -8090,14 +8466,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Unit",
+        "name" : "Type",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
-        "setterMethodName" : "setUnit",
+        "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+        "setterMethodName" : "setType",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "unit",
+          "variableName" : "type",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -8107,30 +8483,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "unit",
+          "variableName" : "type",
           "variableType" : "String",
-          "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "type",
-        "c2jShape" : "PropertyType",
+        "c2jName" : "properties",
+        "c2jShape" : "AssetModelPropertyDefinitions",
         "deprecated" : false,
-        "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+        "documentation" : "<p>The asset property definitions for this composite model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withType",
-        "getterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@return The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
-        "getterMethodName" : "getType",
+        "fluentSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProperties",
+        "getterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@return The asset property definitions for this composite model.*/",
+        "getterMethodName" : "getProperties",
         "getterModel" : {
-          "returnType" : "PropertyType",
+          "returnType" : "java.util.List<AssetModelPropertyDefinition>",
           "documentation" : null
         },
         "http" : {
@@ -8143,69 +8519,153 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "type",
+          "marshallLocationName" : "properties",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "type",
+          "unmarshallLocationName" : "properties",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Type",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
-        "setterMethodName" : "setType",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyType",
-          "variableName" : "type",
-          "variableType" : "PropertyType",
-          "documentation" : "",
-          "simpleType" : "PropertyType",
-          "variableSetterType" : "PropertyType"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyType",
-          "variableName" : "type",
-          "variableType" : "PropertyType",
-          "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
-          "simpleType" : "PropertyType",
-          "variableSetterType" : "PropertyType"
-        },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "DataType" : {
-          "c2jName" : "dataType",
-          "c2jShape" : "PropertyDataType",
-          "deprecated" : false,
-          "documentation" : "<p>The data type of the property definition.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "PropertyDataType",
-          "fluentSetterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-          "fluentSetterMethodName" : "withDataType",
-          "getterDocumentation" : "/**<p>The data type of the property definition.</p>\n@return The data type of the property definition.\n@see PropertyDataType*/",
-          "getterMethodName" : "getDataType",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelPropertyDefinition",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelPropertyDefinition",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelPropertyDefinition",
+              "documentation" : "",
+              "simpleType" : "AssetModelPropertyDefinition",
+              "variableSetterType" : "AssetModelPropertyDefinition"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelPropertyDefinition",
+              "documentation" : "",
+              "simpleType" : "AssetModelPropertyDefinition",
+              "variableSetterType" : "AssetModelPropertyDefinition"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelPropertyDefinition",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelPropertyDefinition",
+          "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
+          "templateType" : "java.util.List<AssetModelPropertyDefinition>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Properties",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.*/",
+        "setterMethodName" : "setProperties",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelPropertyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+          "variableName" : "properties",
+          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+          "documentation" : "<p>The asset property definitions for this composite model.</p>",
+          "simpleType" : "List<AssetModelPropertyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Description" : {
+          "c2jName" : "description",
+          "c2jShape" : "Description",
+          "deprecated" : false,
+          "documentation" : "<p>The description of the composite model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDescription",
+          "getterDocumentation" : "/**<p>The description of the composite model.</p>\n@return The description of the composite model.*/",
+          "getterMethodName" : "getDescription",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
             "additionalUnmarshallingPath" : null,
             "flattened" : false,
             "greedy" : false,
@@ -8214,11 +8674,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dataType",
+            "marshallLocationName" : "description",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dataType",
+            "unmarshallLocationName" : "description",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -8230,14 +8690,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DataType",
+          "name" : "Description",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@see PropertyDataType*/",
-          "setterMethodName" : "setDataType",
+          "setterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.*/",
+          "setterMethodName" : "setDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dataType",
+            "variableName" : "description",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -8247,13 +8707,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The data type of the property definition.</p>\n@param dataType The data type of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+          "varargSetterDocumentation" : "/**<p>The description of the composite model.</p>\n@param description The description of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dataType",
+            "variableName" : "description",
             "variableType" : "String",
-            "documentation" : "<p>The data type of the property definition.</p>",
+            "documentation" : "<p>The description of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -8263,12 +8723,12 @@
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the property definition.</p>",
+          "documentation" : "<p>The name of the composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the property definition.</p>\n@return The name of the property definition.*/",
+          "getterDocumentation" : "/**<p>The name of the composite model.</p>\n@return The name of the composite model.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -8302,7 +8762,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.*/",
+          "setterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -8317,31 +8777,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the composite model.</p>\n@param name The name of the composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the property definition.</p>",
+            "documentation" : "<p>The name of the composite model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Type" : {
-          "c2jName" : "type",
-          "c2jShape" : "PropertyType",
+        "Properties" : {
+          "c2jName" : "properties",
+          "c2jShape" : "AssetModelPropertyDefinitions",
           "deprecated" : false,
-          "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+          "documentation" : "<p>The asset property definitions for this composite model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withType",
-          "getterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@return The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
-          "getterMethodName" : "getType",
+          "fluentSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProperties",
+          "getterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@return The asset property definitions for this composite model.*/",
+          "getterMethodName" : "getProperties",
           "getterModel" : {
-            "returnType" : "PropertyType",
+            "returnType" : "java.util.List<AssetModelPropertyDefinition>",
             "documentation" : null
           },
           "http" : {
@@ -8354,62 +8814,146 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "type",
+            "marshallLocationName" : "properties",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "type",
+            "unmarshallLocationName" : "properties",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelPropertyDefinition",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelPropertyDefinition",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelPropertyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelPropertyDefinition",
+                "variableSetterType" : "AssetModelPropertyDefinition"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelPropertyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelPropertyDefinition",
+                "variableSetterType" : "AssetModelPropertyDefinition"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelPropertyDefinition",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelPropertyDefinition",
+            "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
+            "templateType" : "java.util.List<AssetModelPropertyDefinition>"
+          },
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Type",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Properties",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
-          "setterMethodName" : "setType",
+          "setterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n@param properties The asset property definitions for this composite model.*/",
+          "setterMethodName" : "setProperties",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyType",
-            "variableName" : "type",
-            "variableType" : "PropertyType",
+            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
             "documentation" : "",
-            "simpleType" : "PropertyType",
-            "variableSetterType" : "PropertyType"
+            "simpleType" : "List<AssetModelPropertyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The asset property definitions for this composite model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setProperties(java.util.Collection)} or {@link #withProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param properties The asset property definitions for this composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyType",
-            "variableName" : "type",
-            "variableType" : "PropertyType",
-            "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
-            "simpleType" : "PropertyType",
-            "variableSetterType" : "PropertyType"
+            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+            "variableName" : "properties",
+            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+            "documentation" : "<p>The asset property definitions for this composite model.</p>",
+            "simpleType" : "List<AssetModelPropertyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
           },
           "xmlNameSpaceUri" : null
         },
-        "Unit" : {
-          "c2jName" : "unit",
-          "c2jShape" : "PropertyUnit",
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+          "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withUnit",
-          "getterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
-          "getterMethodName" : "getUnit",
+          "fluentSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@return The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -8424,11 +8968,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "unit",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "unit",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -8440,14 +8984,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Unit",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
-          "setterMethodName" : "setUnit",
+          "setterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "unit",
+            "variableName" : "type",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -8457,13 +9001,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>\n@param type The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "unit",
+            "variableName" : "type",
             "variableType" : "String",
-            "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+            "documentation" : "<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -8473,70 +9017,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "name", "dataType", "type" ],
-      "shapeName" : "AssetModelPropertyDefinition",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelPropertyDefinition",
-        "variableName" : "assetModelPropertyDefinition",
-        "variableType" : "AssetModelPropertyDefinition",
-        "documentation" : null,
-        "simpleType" : "AssetModelPropertyDefinition",
-        "variableSetterType" : "AssetModelPropertyDefinition"
-      },
-      "wrapper" : false
-    },
-    "AssetModelState" : {
-      "c2jName" : "AssetModelState",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "CREATING",
-        "value" : "CREATING"
-      }, {
-        "name" : "ACTIVE",
-        "value" : "ACTIVE"
-      }, {
-        "name" : "UPDATING",
-        "value" : "UPDATING"
-      }, {
-        "name" : "PROPAGATING",
-        "value" : "PROPAGATING"
-      }, {
-        "name" : "DELETING",
-        "value" : "DELETING"
-      }, {
-        "name" : "FAILED",
-        "value" : "FAILED"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetModelState",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "AssetModelState",
+      "required" : [ "name", "type" ],
+      "shapeName" : "AssetModelCompositeModelDefinition",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -8545,17 +9027,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelState",
-        "variableName" : "assetModelState",
-        "variableType" : "AssetModelState",
+        "variableDeclarationType" : "AssetModelCompositeModelDefinition",
+        "variableName" : "assetModelCompositeModelDefinition",
+        "variableType" : "AssetModelCompositeModelDefinition",
         "documentation" : null,
-        "simpleType" : "AssetModelState",
-        "variableSetterType" : "AssetModelState"
+        "simpleType" : "AssetModelCompositeModelDefinition",
+        "variableSetterType" : "AssetModelCompositeModelDefinition"
       },
       "wrapper" : false
     },
-    "AssetModelStatus" : {
-      "c2jName" : "AssetModelStatus",
+    "AssetModelHierarchy" : {
+      "c2jName" : "AssetModelHierarchy",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -8563,11 +9045,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains current status information for an asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "documentation" : "<p>Describes an asset hierarchy that contains a hierarchy's name, ID, and child asset model ID that specifies the type of asset that can be in this hierarchy.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelStatus",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelHierarchy",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -8575,16 +9057,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "state",
-        "c2jShape" : "AssetModelState",
+        "c2jName" : "id",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The current state of the asset model.</p>",
+        "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "AssetModelState",
-        "fluentSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
-        "fluentSetterMethodName" : "withState",
-        "getterDocumentation" : "/**<p>The current state of the asset model.</p>\n@return The current state of the asset model.\n@see AssetModelState*/",
-        "getterMethodName" : "getState",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -8599,11 +9081,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "state",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "state",
+          "unmarshallLocationName" : "id",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -8615,14 +9097,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "State",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@see AssetModelState*/",
-        "setterMethodName" : "setState",
+        "setterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "state",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -8632,30 +9114,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "state",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The current state of the asset model.</p>",
+          "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "error",
-        "c2jShape" : "ErrorDetails",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>Contains associated error information, if any.</p>",
+        "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withError",
-        "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
-        "getterMethodName" : "getError",
+        "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
-          "returnType" : "ErrorDetails",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -8668,11 +9150,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "error",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "error",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -8682,119 +9164,188 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Error",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
-        "setterMethodName" : "setError",
+        "setterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ErrorDetails",
-          "variableName" : "error",
-          "variableType" : "ErrorDetails",
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "ErrorDetails",
-          "variableSetterType" : "ErrorDetails"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ErrorDetails",
-          "variableName" : "error",
-          "variableType" : "ErrorDetails",
-          "documentation" : "<p>Contains associated error information, if any.</p>",
-          "simpleType" : "ErrorDetails",
-          "variableSetterType" : "ErrorDetails"
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Error" : {
-          "c2jName" : "error",
-          "c2jShape" : "ErrorDetails",
-          "deprecated" : false,
-          "documentation" : "<p>Contains associated error information, if any.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withError",
-          "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
-          "getterMethodName" : "getError",
-          "getterModel" : {
-            "returnType" : "ErrorDetails",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "error",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "error",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Error",
+      }, {
+        "c2jName" : "childAssetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withChildAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@return The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
+        "getterMethodName" : "getChildAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "childAssetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "childAssetModelId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ChildAssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
+        "setterMethodName" : "setChildAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "childAssetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "childAssetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "ChildAssetModelId" : {
+          "c2jName" : "childAssetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withChildAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@return The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
+          "getterMethodName" : "getChildAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "childAssetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "childAssetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ChildAssetModelId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
-          "setterMethodName" : "setError",
+          "setterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.*/",
+          "setterMethodName" : "setChildAssetModelId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "ErrorDetails",
-            "variableName" : "error",
-            "variableType" : "ErrorDetails",
+            "variableDeclarationType" : "String",
+            "variableName" : "childAssetModelId",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "ErrorDetails",
-            "variableSetterType" : "ErrorDetails"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>\n@param childAssetModelId The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "ErrorDetails",
-            "variableName" : "error",
-            "variableType" : "ErrorDetails",
-            "documentation" : "<p>Contains associated error information, if any.</p>",
-            "simpleType" : "ErrorDetails",
-            "variableSetterType" : "ErrorDetails"
+            "variableDeclarationType" : "String",
+            "variableName" : "childAssetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model. All assets in this hierarchy must be instances of the <code>childAssetModelId</code> asset model.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "State" : {
-          "c2jName" : "state",
-          "c2jShape" : "AssetModelState",
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The current state of the asset model.</p>",
+          "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "AssetModelState",
-          "fluentSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
-          "fluentSetterMethodName" : "withState",
-          "getterDocumentation" : "/**<p>The current state of the asset model.</p>\n@return The current state of the asset model.\n@see AssetModelState*/",
-          "getterMethodName" : "getState",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@return The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -8809,11 +9360,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "state",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "state",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -8825,14 +9376,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "State",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@see AssetModelState*/",
-          "setterMethodName" : "setState",
+          "setterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "state",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -8842,13 +9393,83 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>\n@param id The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "state",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The current state of the asset model.</p>",
+            "documentation" : "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@return The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+          "getterMethodName" : "getName",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "name",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "name",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Name",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.*/",
+          "setterMethodName" : "setName",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>\n@param name The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -8858,8 +9479,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "state" ],
-      "shapeName" : "AssetModelStatus",
+      "required" : [ "name", "childAssetModelId" ],
+      "shapeName" : "AssetModelHierarchy",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -8868,17 +9489,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelStatus",
-        "variableName" : "assetModelStatus",
-        "variableType" : "AssetModelStatus",
+        "variableDeclarationType" : "AssetModelHierarchy",
+        "variableName" : "assetModelHierarchy",
+        "variableType" : "AssetModelHierarchy",
         "documentation" : null,
-        "simpleType" : "AssetModelStatus",
-        "variableSetterType" : "AssetModelStatus"
+        "simpleType" : "AssetModelHierarchy",
+        "variableSetterType" : "AssetModelHierarchy"
       },
       "wrapper" : false
     },
-    "AssetModelSummary" : {
-      "c2jName" : "AssetModelSummary",
+    "AssetModelHierarchyDefinition" : {
+      "c2jName" : "AssetModelHierarchyDefinition",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -8886,11 +9507,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains a summary of an asset model.</p>",
+      "documentation" : "<p>Contains an asset model hierarchy used in asset model creation. An asset model hierarchy determines the kind (or type) of asset that can belong to a hierarchy.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelSummary",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelHierarchyDefinition",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -8898,153 +9519,15 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "id",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@return The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
-        "getterMethodName" : "getId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "id",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Id",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
-        "setterMethodName" : "setId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "arn",
-        "c2jShape" : "ARN",
-        "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "getterMethodName" : "getArn",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "arn",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "arn",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Arn",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "setterMethodName" : "setArn",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "arn",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "arn",
-          "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
         "c2jName" : "name",
         "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset model.</p>",
+        "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
+        "getterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@return The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -9078,7 +9561,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.*/",
+        "setterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -9093,28 +9576,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset model.</p>",
+          "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "description",
-        "c2jShape" : "Description",
+        "c2jName" : "childAssetModelId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The asset model description.</p>",
+        "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDescription",
-        "getterDocumentation" : "/**<p>The asset model description.</p>\n@return The asset model description.*/",
-        "getterMethodName" : "getDescription",
+        "fluentSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withChildAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@return The ID of an asset model for this hierarchy.*/",
+        "getterMethodName" : "getChildAssetModelId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -9129,11 +9612,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "description",
+          "marshallLocationName" : "childAssetModelId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "description",
+          "unmarshallLocationName" : "childAssetModelId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -9145,14 +9628,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Description",
+        "name" : "ChildAssetModelId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.*/",
-        "setterMethodName" : "setDescription",
+        "setterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.*/",
+        "setterMethodName" : "setChildAssetModelId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "description",
+          "variableName" : "childAssetModelId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -9162,447 +9645,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "description",
+          "variableName" : "childAssetModelId",
           "variableType" : "String",
-          "documentation" : "<p>The asset model description.</p>",
+          "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "creationDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withCreationDate",
-        "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
-        "getterMethodName" : "getCreationDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "creationDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "creationDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "CreationDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.*/",
-        "setterMethodName" : "setCreationDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "lastUpdateDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getLastUpdateDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "lastUpdateDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "lastUpdateDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "LastUpdateDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setLastUpdateDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "status",
-        "c2jShape" : "AssetModelStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The current status of the asset model.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withStatus",
-        "getterDocumentation" : "/**<p>The current status of the asset model.</p>\n@return The current status of the asset model.*/",
-        "getterMethodName" : "getStatus",
-        "getterModel" : {
-          "returnType" : "AssetModelStatus",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "status",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "status",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Status",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.*/",
-        "setterMethodName" : "setStatus",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "status",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "status",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "<p>The current status of the asset model.</p>",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Arn" : {
-          "c2jName" : "arn",
-          "c2jShape" : "ARN",
-          "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "getterMethodName" : "getArn",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "arn",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "arn",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Arn",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "setterMethodName" : "setArn",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "arn",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "arn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "CreationDate" : {
-          "c2jName" : "creationDate",
-          "c2jShape" : "Timestamp",
-          "deprecated" : false,
-          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withCreationDate",
-          "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
-          "getterMethodName" : "getCreationDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "creationDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "creationDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "CreationDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.*/",
-          "setterMethodName" : "setCreationDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "Description" : {
-          "c2jName" : "description",
-          "c2jShape" : "Description",
-          "deprecated" : false,
-          "documentation" : "<p>The asset model description.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDescription",
-          "getterDocumentation" : "/**<p>The asset model description.</p>\n@return The asset model description.*/",
-          "getterMethodName" : "getDescription",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "description",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "description",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Description",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.*/",
-          "setterMethodName" : "setDescription",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "description",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "description",
-            "variableType" : "String",
-            "documentation" : "<p>The asset model description.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "Id" : {
-          "c2jName" : "id",
+        "ChildAssetModelId" : {
+          "c2jName" : "childAssetModelId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
+          "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@return The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
-          "getterMethodName" : "getId",
+          "fluentSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withChildAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@return The ID of an asset model for this hierarchy.*/",
+          "getterMethodName" : "getChildAssetModelId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -9617,11 +9683,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
+            "marshallLocationName" : "childAssetModelId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "childAssetModelId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -9633,14 +9699,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Id",
+          "name" : "ChildAssetModelId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.*/",
+          "setterMethodName" : "setChildAssetModelId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "childAssetModelId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -9650,98 +9716,28 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of an asset model for this hierarchy.</p>\n@param childAssetModelId The ID of an asset model for this hierarchy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "childAssetModelId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
+            "documentation" : "<p>The ID of an asset model for this hierarchy.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "LastUpdateDate" : {
-          "c2jName" : "lastUpdateDate",
-          "c2jShape" : "Timestamp",
-          "deprecated" : false,
-          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getLastUpdateDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "lastUpdateDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "lastUpdateDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "LastUpdateDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
-          "setterMethodName" : "setLastUpdateDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
         "Name" : {
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset model.</p>",
+          "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
+          "getterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@return The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -9775,7 +9771,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.*/",
+          "setterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -9790,94 +9786,24 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>\n@param name The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset model.</p>",
+            "documentation" : "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "Status" : {
-          "c2jName" : "status",
-          "c2jShape" : "AssetModelStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The current status of the asset model.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withStatus",
-          "getterDocumentation" : "/**<p>The current status of the asset model.</p>\n@return The current status of the asset model.*/",
-          "getterMethodName" : "getStatus",
-          "getterModel" : {
-            "returnType" : "AssetModelStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "status",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "status",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Status",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.*/",
-          "setterMethodName" : "setStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "status",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "status",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "<p>The current status of the asset model.</p>",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id", "arn", "name", "description", "creationDate", "lastUpdateDate", "status" ],
-      "shapeName" : "AssetModelSummary",
+      "required" : [ "name", "childAssetModelId" ],
+      "shapeName" : "AssetModelHierarchyDefinition",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -9886,17 +9812,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetModelSummary",
-        "variableName" : "assetModelSummary",
-        "variableType" : "AssetModelSummary",
+        "variableDeclarationType" : "AssetModelHierarchyDefinition",
+        "variableName" : "assetModelHierarchyDefinition",
+        "variableType" : "AssetModelHierarchyDefinition",
         "documentation" : null,
-        "simpleType" : "AssetModelSummary",
-        "variableSetterType" : "AssetModelSummary"
+        "simpleType" : "AssetModelHierarchyDefinition",
+        "variableSetterType" : "AssetModelHierarchyDefinition"
       },
       "wrapper" : false
     },
-    "AssetProperty" : {
-      "c2jName" : "AssetProperty",
+    "AssetModelProperty" : {
+      "c2jName" : "AssetModelProperty",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -9904,11 +9830,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains asset property information.</p>",
+      "documentation" : "<p>Contains information about an asset model property.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetProperty",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelProperty",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -9919,12 +9845,12 @@
         "c2jName" : "id",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset property.</p>",
+        "documentation" : "<p>The ID of the asset model property.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+        "getterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@return The ID of the asset model property.*/",
         "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
@@ -9958,7 +9884,7 @@
         "marshallingType" : "STRING",
         "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.*/",
+        "setterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.*/",
         "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -9973,13 +9899,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset property.</p>",
+          "documentation" : "<p>The ID of the asset model property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -9988,12 +9914,12 @@
         "c2jName" : "name",
         "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The name of the property.</p>",
+        "documentation" : "<p>The name of the asset model property.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+        "getterDocumentation" : "/**<p>The name of the asset model property.</p>\n@return The name of the asset model property.*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -10027,7 +9953,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+        "setterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -10042,28 +9968,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The name of the property.</p>",
+          "documentation" : "<p>The name of the asset model property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "alias",
-        "c2jShape" : "PropertyAlias",
+        "c2jName" : "dataType",
+        "c2jShape" : "PropertyDataType",
         "deprecated" : false,
-        "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The data type of the asset model property.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAlias",
-        "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getAlias",
+        "enumType" : "PropertyDataType",
+        "fluentSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "fluentSetterMethodName" : "withDataType",
+        "getterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@return The data type of the asset model property.\n@see PropertyDataType*/",
+        "getterMethodName" : "getDataType",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -10078,11 +10004,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "alias",
+          "marshallLocationName" : "dataType",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "alias",
+          "unmarshallLocationName" : "dataType",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10094,14 +10020,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Alias",
+        "name" : "DataType",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setAlias",
+        "setterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@see PropertyDataType*/",
+        "setterMethodName" : "setDataType",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "alias",
+          "variableName" : "dataType",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -10111,30 +10037,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "alias",
+          "variableName" : "dataType",
           "variableType" : "String",
-          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The data type of the asset model property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "notification",
-        "c2jShape" : "PropertyNotification",
+        "c2jName" : "dataTypeSpec",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
+        "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withNotification",
-        "getterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@return The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
-        "getterMethodName" : "getNotification",
+        "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDataTypeSpec",
+        "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@return The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+        "getterMethodName" : "getDataTypeSpec",
         "getterModel" : {
-          "returnType" : "PropertyNotification",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -10147,11 +10073,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "notification",
+          "marshallLocationName" : "dataTypeSpec",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "notification",
+          "unmarshallLocationName" : "dataTypeSpec",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10161,47 +10087,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Notification",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "DataTypeSpec",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
-        "setterMethodName" : "setNotification",
+        "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+        "setterMethodName" : "setDataTypeSpec",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyNotification",
-          "variableName" : "notification",
-          "variableType" : "PropertyNotification",
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "PropertyNotification",
-          "variableSetterType" : "PropertyNotification"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PropertyNotification",
-          "variableName" : "notification",
-          "variableType" : "PropertyNotification",
-          "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
-          "simpleType" : "PropertyNotification",
-          "variableSetterType" : "PropertyNotification"
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
+          "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "dataType",
-        "c2jShape" : "PropertyDataType",
+        "c2jName" : "unit",
+        "c2jShape" : "PropertyUnit",
         "deprecated" : false,
-        "documentation" : "<p>The data type of the asset property.</p>",
+        "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "PropertyDataType",
-        "fluentSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-        "fluentSetterMethodName" : "withDataType",
-        "getterDocumentation" : "/**<p>The data type of the asset property.</p>\n@return The data type of the asset property.\n@see PropertyDataType*/",
-        "getterMethodName" : "getDataType",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withUnit",
+        "getterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
+        "getterMethodName" : "getUnit",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -10216,11 +10142,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dataType",
+          "marshallLocationName" : "unit",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dataType",
+          "unmarshallLocationName" : "unit",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10232,14 +10158,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DataType",
+        "name" : "Unit",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@see PropertyDataType*/",
-        "setterMethodName" : "setDataType",
+        "setterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
+        "setterMethodName" : "setUnit",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "unit",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -10249,30 +10175,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "varargSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dataType",
+          "variableName" : "unit",
           "variableType" : "String",
-          "documentation" : "<p>The data type of the asset property.</p>",
+          "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "unit",
-        "c2jShape" : "PropertyUnit",
+        "c2jName" : "type",
+        "c2jShape" : "PropertyType",
         "deprecated" : false,
-        "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
+        "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withUnit",
-        "getterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@return The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
-        "getterMethodName" : "getUnit",
+        "fluentSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@return The property type (see <code>PropertyType</code>).*/",
+        "getterMethodName" : "getType",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "PropertyType",
           "documentation" : null
         },
         "http" : {
@@ -10285,11 +10211,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "unit",
+          "marshallLocationName" : "type",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "unit",
+          "unmarshallLocationName" : "type",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10299,49 +10225,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Unit",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Type",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
-        "setterMethodName" : "setUnit",
+        "setterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).*/",
+        "setterMethodName" : "setType",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "unit",
-          "variableType" : "String",
+          "variableDeclarationType" : "PropertyType",
+          "variableName" : "type",
+          "variableType" : "PropertyType",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "PropertyType",
+          "variableSetterType" : "PropertyType"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "unit",
-          "variableType" : "String",
-          "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "PropertyType",
+          "variableName" : "type",
+          "variableType" : "PropertyType",
+          "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
+          "simpleType" : "PropertyType",
+          "variableSetterType" : "PropertyType"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Alias" : {
-          "c2jName" : "alias",
-          "c2jShape" : "PropertyAlias",
+        "DataType" : {
+          "c2jName" : "dataType",
+          "c2jShape" : "PropertyDataType",
           "deprecated" : false,
-          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The data type of the asset model property.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAlias",
-          "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getAlias",
+          "enumType" : "PropertyDataType",
+          "fluentSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+          "fluentSetterMethodName" : "withDataType",
+          "getterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@return The data type of the asset model property.\n@see PropertyDataType*/",
+          "getterMethodName" : "getDataType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -10356,11 +10282,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "alias",
+            "marshallLocationName" : "dataType",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "alias",
+            "unmarshallLocationName" : "dataType",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -10372,14 +10298,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Alias",
+          "name" : "DataType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setAlias",
+          "setterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@see PropertyDataType*/",
+          "setterMethodName" : "setDataType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "alias",
+            "variableName" : "dataType",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -10389,29 +10315,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the asset model property.</p>\n@param dataType The data type of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "alias",
+            "variableName" : "dataType",
             "variableType" : "String",
-            "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>The data type of the asset model property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "DataType" : {
-          "c2jName" : "dataType",
-          "c2jShape" : "PropertyDataType",
+        "DataTypeSpec" : {
+          "c2jName" : "dataTypeSpec",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The data type of the asset property.</p>",
+          "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "PropertyDataType",
-          "fluentSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
-          "fluentSetterMethodName" : "withDataType",
-          "getterDocumentation" : "/**<p>The data type of the asset property.</p>\n@return The data type of the asset property.\n@see PropertyDataType*/",
-          "getterMethodName" : "getDataType",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDataTypeSpec",
+          "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@return The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+          "getterMethodName" : "getDataTypeSpec",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -10426,11 +10352,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dataType",
+            "marshallLocationName" : "dataTypeSpec",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dataType",
+            "unmarshallLocationName" : "dataTypeSpec",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -10442,14 +10368,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DataType",
+          "name" : "DataTypeSpec",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@see PropertyDataType*/",
-          "setterMethodName" : "setDataType",
+          "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+          "setterMethodName" : "setDataTypeSpec",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dataType",
+            "variableName" : "dataTypeSpec",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -10459,13 +10385,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dataType",
+            "variableName" : "dataTypeSpec",
             "variableType" : "String",
-            "documentation" : "<p>The data type of the asset property.</p>",
+            "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -10475,12 +10401,12 @@
           "c2jName" : "id",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset property.</p>",
+          "documentation" : "<p>The ID of the asset model property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+          "getterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@return The ID of the asset model property.*/",
           "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
@@ -10514,7 +10440,7 @@
           "marshallingType" : "STRING",
           "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.*/",
+          "setterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.*/",
           "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -10529,13 +10455,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model property.</p>\n@param id The ID of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset property.</p>",
+            "documentation" : "<p>The ID of the asset model property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -10545,12 +10471,12 @@
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the property.</p>",
+          "documentation" : "<p>The name of the asset model property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+          "getterDocumentation" : "/**<p>The name of the asset model property.</p>\n@return The name of the asset model property.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -10584,7 +10510,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+          "setterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -10599,31 +10525,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the asset model property.</p>\n@param name The name of the asset model property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the property.</p>",
+            "documentation" : "<p>The name of the asset model property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Notification" : {
-          "c2jName" : "notification",
-          "c2jShape" : "PropertyNotification",
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "PropertyType",
           "deprecated" : false,
-          "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
+          "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withNotification",
-          "getterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@return The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
-          "getterMethodName" : "getNotification",
+          "fluentSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@return The property type (see <code>PropertyType</code>).*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
-            "returnType" : "PropertyNotification",
+            "returnType" : "PropertyType",
             "documentation" : null
           },
           "http" : {
@@ -10636,11 +10562,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "notification",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "notification",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -10652,32 +10578,32 @@
           "mapModel" : null,
           "marshallingTargetClass" : "StructuredPojo",
           "marshallingType" : "STRUCTURED",
-          "name" : "Notification",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
-          "setterMethodName" : "setNotification",
+          "setterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyNotification",
-            "variableName" : "notification",
-            "variableType" : "PropertyNotification",
+            "variableDeclarationType" : "PropertyType",
+            "variableName" : "type",
+            "variableType" : "PropertyType",
             "documentation" : "",
-            "simpleType" : "PropertyNotification",
-            "variableSetterType" : "PropertyNotification"
+            "simpleType" : "PropertyType",
+            "variableSetterType" : "PropertyType"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The property type (see <code>PropertyType</code>).</p>\n@param type The property type (see <code>PropertyType</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PropertyNotification",
-            "variableName" : "notification",
-            "variableType" : "PropertyNotification",
-            "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
-            "simpleType" : "PropertyNotification",
-            "variableSetterType" : "PropertyNotification"
+            "variableDeclarationType" : "PropertyType",
+            "variableName" : "type",
+            "variableType" : "PropertyType",
+            "documentation" : "<p>The property type (see <code>PropertyType</code>).</p>",
+            "simpleType" : "PropertyType",
+            "variableSetterType" : "PropertyType"
           },
           "xmlNameSpaceUri" : null
         },
@@ -10685,12 +10611,12 @@
           "c2jName" : "unit",
           "c2jShape" : "PropertyUnit",
           "deprecated" : false,
-          "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
+          "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withUnit",
-          "getterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@return The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+          "getterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
           "getterMethodName" : "getUnit",
           "getterModel" : {
             "returnType" : "String",
@@ -10724,7 +10650,7 @@
           "marshallingType" : "STRING",
           "name" : "Unit",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+          "setterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.*/",
           "setterMethodName" : "setUnit",
           "setterModel" : {
             "timestampFormat" : null,
@@ -10739,13 +10665,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "unit",
             "variableType" : "String",
-            "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
+            "documentation" : "<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -10755,8 +10681,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id", "name", "dataType" ],
-      "shapeName" : "AssetProperty",
+      "required" : [ "name", "dataType", "type" ],
+      "shapeName" : "AssetModelProperty",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -10765,17 +10691,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetProperty",
-        "variableName" : "assetProperty",
-        "variableType" : "AssetProperty",
+        "variableDeclarationType" : "AssetModelProperty",
+        "variableName" : "assetModelProperty",
+        "variableType" : "AssetModelProperty",
         "documentation" : null,
-        "simpleType" : "AssetProperty",
-        "variableSetterType" : "AssetProperty"
+        "simpleType" : "AssetModelProperty",
+        "variableSetterType" : "AssetModelProperty"
       },
       "wrapper" : false
     },
-    "AssetPropertyValue" : {
-      "c2jName" : "AssetPropertyValue",
+    "AssetModelPropertyDefinition" : {
+      "c2jName" : "AssetModelPropertyDefinition",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -10783,11 +10709,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains asset property value information.</p>",
+      "documentation" : "<p>Contains an asset model property definition. This property definition is applied to all assets created from the asset model.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetPropertyValue",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelPropertyDefinition",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -10795,18 +10721,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "value",
-        "c2jShape" : "Variant",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
+        "documentation" : "<p>The name of the property definition.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withValue",
-        "getterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@return The value of the asset property (see <code>Variant</code>).*/",
-        "getterMethodName" : "getValue",
+        "fluentSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the property definition.</p>\n@return The name of the property definition.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
-          "returnType" : "Variant",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -10819,11 +10745,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "value",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "value",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10833,49 +10759,118 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Value",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).*/",
-        "setterMethodName" : "setValue",
+        "setterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Variant",
-          "variableName" : "value",
-          "variableType" : "Variant",
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "Variant",
-          "variableSetterType" : "Variant"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Variant",
-          "variableName" : "value",
-          "variableType" : "Variant",
-          "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
-          "simpleType" : "Variant",
-          "variableSetterType" : "Variant"
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the property definition.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "timestamp",
-        "c2jShape" : "TimeInNanos",
+        "c2jName" : "dataType",
+        "c2jShape" : "PropertyDataType",
         "deprecated" : false,
-        "documentation" : "<p>The timestamp of the asset property value.</p>",
+        "documentation" : "<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "PropertyDataType",
+        "fluentSetterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "fluentSetterMethodName" : "withDataType",
+        "getterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@return The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@see PropertyDataType*/",
+        "getterMethodName" : "getDataType",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "dataType",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "dataType",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "DataType",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@see PropertyDataType*/",
+        "setterMethodName" : "setDataType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "dataType",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "dataType",
+          "variableType" : "String",
+          "documentation" : "<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "dataTypeSpec",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTimestamp",
-        "getterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@return The timestamp of the asset property value.*/",
-        "getterMethodName" : "getTimestamp",
+        "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDataTypeSpec",
+        "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@return The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.*/",
+        "getterMethodName" : "getDataTypeSpec",
         "getterModel" : {
-          "returnType" : "TimeInNanos",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -10888,11 +10883,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "timestamp",
+          "marshallLocationName" : "dataTypeSpec",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "timestamp",
+          "unmarshallLocationName" : "dataTypeSpec",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10902,47 +10897,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Timestamp",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "DataTypeSpec",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.*/",
-        "setterMethodName" : "setTimestamp",
+        "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.*/",
+        "setterMethodName" : "setDataTypeSpec",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "TimeInNanos",
-          "variableName" : "timestamp",
-          "variableType" : "TimeInNanos",
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "TimeInNanos",
-          "variableSetterType" : "TimeInNanos"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "TimeInNanos",
-          "variableName" : "timestamp",
-          "variableType" : "TimeInNanos",
-          "documentation" : "<p>The timestamp of the asset property value.</p>",
-          "simpleType" : "TimeInNanos",
-          "variableSetterType" : "TimeInNanos"
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
+          "documentation" : "<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "quality",
-        "c2jShape" : "Quality",
+        "c2jName" : "unit",
+        "c2jShape" : "PropertyUnit",
         "deprecated" : false,
-        "documentation" : "<p>The quality of the asset property value.</p>",
+        "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "Quality",
-        "fluentSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
-        "fluentSetterMethodName" : "withQuality",
-        "getterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@return The quality of the asset property value.\n@see Quality*/",
-        "getterMethodName" : "getQuality",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withUnit",
+        "getterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
+        "getterMethodName" : "getUnit",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -10957,11 +10952,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "quality",
+          "marshallLocationName" : "unit",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "quality",
+          "unmarshallLocationName" : "unit",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -10973,14 +10968,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Quality",
+        "name" : "Unit",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@see Quality*/",
-        "setterMethodName" : "setQuality",
+        "setterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
+        "setterMethodName" : "setUnit",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "quality",
+          "variableName" : "unit",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -10990,30 +10985,99 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
+        "varargSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "quality",
+          "variableName" : "unit",
           "variableType" : "String",
-          "documentation" : "<p>The quality of the asset property value.</p>",
+          "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "type",
+        "c2jShape" : "PropertyType",
+        "deprecated" : false,
+        "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@return The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
+        "getterMethodName" : "getType",
+        "getterModel" : {
+          "returnType" : "PropertyType",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "type",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "type",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Type",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
+        "setterMethodName" : "setType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PropertyType",
+          "variableName" : "type",
+          "variableType" : "PropertyType",
+          "documentation" : "",
+          "simpleType" : "PropertyType",
+          "variableSetterType" : "PropertyType"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PropertyType",
+          "variableName" : "type",
+          "variableType" : "PropertyType",
+          "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+          "simpleType" : "PropertyType",
+          "variableSetterType" : "PropertyType"
+        },
+        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Quality" : {
-          "c2jName" : "quality",
-          "c2jShape" : "Quality",
+        "DataType" : {
+          "c2jName" : "dataType",
+          "c2jShape" : "PropertyDataType",
           "deprecated" : false,
-          "documentation" : "<p>The quality of the asset property value.</p>",
+          "documentation" : "<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "Quality",
-          "fluentSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
-          "fluentSetterMethodName" : "withQuality",
-          "getterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@return The quality of the asset property value.\n@see Quality*/",
-          "getterMethodName" : "getQuality",
+          "enumType" : "PropertyDataType",
+          "fluentSetterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+          "fluentSetterMethodName" : "withDataType",
+          "getterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@return The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@see PropertyDataType*/",
+          "getterMethodName" : "getDataType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -11028,11 +11092,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "quality",
+            "marshallLocationName" : "dataType",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "quality",
+            "unmarshallLocationName" : "dataType",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -11044,14 +11108,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Quality",
+          "name" : "DataType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@see Quality*/",
-          "setterMethodName" : "setQuality",
+          "setterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@see PropertyDataType*/",
+          "setterMethodName" : "setDataType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "quality",
+            "variableName" : "dataType",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -11061,31 +11125,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>\n@param dataType The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "quality",
+            "variableName" : "dataType",
             "variableType" : "String",
-            "documentation" : "<p>The quality of the asset property value.</p>",
+            "documentation" : "<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Timestamp" : {
-          "c2jName" : "timestamp",
-          "c2jShape" : "TimeInNanos",
+        "DataTypeSpec" : {
+          "c2jName" : "dataTypeSpec",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The timestamp of the asset property value.</p>",
+          "documentation" : "<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTimestamp",
-          "getterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@return The timestamp of the asset property value.*/",
-          "getterMethodName" : "getTimestamp",
+          "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDataTypeSpec",
+          "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@return The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.*/",
+          "getterMethodName" : "getDataTypeSpec",
           "getterModel" : {
-            "returnType" : "TimeInNanos",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -11098,11 +11162,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "timestamp",
+            "marshallLocationName" : "dataTypeSpec",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "timestamp",
+            "unmarshallLocationName" : "dataTypeSpec",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -11112,50 +11176,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Timestamp",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "DataTypeSpec",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.*/",
-          "setterMethodName" : "setTimestamp",
+          "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.*/",
+          "setterMethodName" : "setDataTypeSpec",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "TimeInNanos",
-            "variableName" : "timestamp",
-            "variableType" : "TimeInNanos",
+            "variableDeclarationType" : "String",
+            "variableName" : "dataTypeSpec",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "TimeInNanos",
-            "variableSetterType" : "TimeInNanos"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "TimeInNanos",
-            "variableName" : "timestamp",
-            "variableType" : "TimeInNanos",
-            "documentation" : "<p>The timestamp of the asset property value.</p>",
-            "simpleType" : "TimeInNanos",
-            "variableSetterType" : "TimeInNanos"
+            "variableDeclarationType" : "String",
+            "variableName" : "dataTypeSpec",
+            "variableType" : "String",
+            "documentation" : "<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Value" : {
-          "c2jName" : "value",
-          "c2jShape" : "Variant",
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
+          "documentation" : "<p>The name of the property definition.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withValue",
-          "getterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@return The value of the asset property (see <code>Variant</code>).*/",
-          "getterMethodName" : "getValue",
+          "fluentSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the property definition.</p>\n@return The name of the property definition.*/",
+          "getterMethodName" : "getName",
           "getterModel" : {
-            "returnType" : "Variant",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -11168,11 +11232,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "value",
+            "marshallLocationName" : "name",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "value",
+            "unmarshallLocationName" : "name",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -11182,62 +11246,202 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Value",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).*/",
-          "setterMethodName" : "setValue",
+          "setterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.*/",
+          "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Variant",
-            "variableName" : "value",
-            "variableType" : "Variant",
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Variant",
-            "variableSetterType" : "Variant"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the property definition.</p>\n@param name The name of the property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Variant",
-            "variableName" : "value",
-            "variableType" : "Variant",
-            "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
-            "simpleType" : "Variant",
-            "variableSetterType" : "Variant"
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the property definition.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "value", "timestamp" ],
-      "shapeName" : "AssetPropertyValue",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "AssetPropertyValue",
-        "variableName" : "assetPropertyValue",
-        "variableType" : "AssetPropertyValue",
+        },
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "PropertyType",
+          "deprecated" : false,
+          "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@return The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
+          "getterMethodName" : "getType",
+          "getterModel" : {
+            "returnType" : "PropertyType",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "type",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "type",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Type",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.*/",
+          "setterMethodName" : "setType",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PropertyType",
+            "variableName" : "type",
+            "variableType" : "PropertyType",
+            "documentation" : "",
+            "simpleType" : "PropertyType",
+            "variableSetterType" : "PropertyType"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>\n@param type The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PropertyType",
+            "variableName" : "type",
+            "variableType" : "PropertyType",
+            "documentation" : "<p>The property definition type (see <code>PropertyType</code>). You can only specify one type in a property definition.</p>",
+            "simpleType" : "PropertyType",
+            "variableSetterType" : "PropertyType"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Unit" : {
+          "c2jName" : "unit",
+          "c2jShape" : "PropertyUnit",
+          "deprecated" : false,
+          "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withUnit",
+          "getterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@return The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
+          "getterMethodName" : "getUnit",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "unit",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "unit",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Unit",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.*/",
+          "setterMethodName" : "setUnit",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "unit",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>\n@param unit The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "unit",
+            "variableType" : "String",
+            "documentation" : "<p>The unit of the property definition, such as <code>Newtons</code> or <code>RPM</code>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "name", "dataType", "type" ],
+      "shapeName" : "AssetModelPropertyDefinition",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetModelPropertyDefinition",
+        "variableName" : "assetModelPropertyDefinition",
+        "variableType" : "AssetModelPropertyDefinition",
         "documentation" : null,
-        "simpleType" : "AssetPropertyValue",
-        "variableSetterType" : "AssetPropertyValue"
+        "simpleType" : "AssetModelPropertyDefinition",
+        "variableSetterType" : "AssetModelPropertyDefinition"
       },
       "wrapper" : false
     },
-    "AssetState" : {
-      "c2jName" : "AssetState",
+    "AssetModelState" : {
+      "c2jName" : "AssetModelState",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -11256,6 +11460,9 @@
       }, {
         "name" : "UPDATING",
         "value" : "UPDATING"
+      }, {
+        "name" : "PROPAGATING",
+        "value" : "PROPAGATING"
       }, {
         "name" : "DELETING",
         "value" : "DELETING"
@@ -11264,7 +11471,7 @@
         "value" : "FAILED"
       } ],
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetState",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetModelState",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -11277,7 +11484,7 @@
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
       "required" : null,
-      "shapeName" : "AssetState",
+      "shapeName" : "AssetModelState",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -11286,17 +11493,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetState",
-        "variableName" : "assetState",
-        "variableType" : "AssetState",
+        "variableDeclarationType" : "AssetModelState",
+        "variableName" : "assetModelState",
+        "variableType" : "AssetModelState",
         "documentation" : null,
-        "simpleType" : "AssetState",
-        "variableSetterType" : "AssetState"
+        "simpleType" : "AssetModelState",
+        "variableSetterType" : "AssetModelState"
       },
       "wrapper" : false
     },
-    "AssetStatus" : {
-      "c2jName" : "AssetStatus",
+    "AssetModelStatus" : {
+      "c2jName" : "AssetModelStatus",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -11304,11 +11511,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains information about the current status of an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "documentation" : "<p>Contains current status information for an asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetStatus",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelStatus",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -11317,14 +11524,14 @@
       "marshaller" : null,
       "members" : [ {
         "c2jName" : "state",
-        "c2jShape" : "AssetState",
+        "c2jShape" : "AssetModelState",
         "deprecated" : false,
-        "documentation" : "<p>The current status of the asset.</p>",
+        "documentation" : "<p>The current state of the asset model.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "AssetState",
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+        "enumType" : "AssetModelState",
+        "fluentSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
         "fluentSetterMethodName" : "withState",
-        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.\n@see AssetState*/",
+        "getterDocumentation" : "/**<p>The current state of the asset model.</p>\n@return The current state of the asset model.\n@see AssetModelState*/",
         "getterMethodName" : "getState",
         "getterModel" : {
           "returnType" : "String",
@@ -11358,7 +11565,7 @@
         "marshallingType" : "STRING",
         "name" : "State",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@see AssetState*/",
+        "setterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@see AssetModelState*/",
         "setterMethodName" : "setState",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11373,13 +11580,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+        "varargSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "state",
           "variableType" : "String",
-          "documentation" : "<p>The current status of the asset.</p>",
+          "documentation" : "<p>The current state of the asset model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -11527,14 +11734,14 @@
         },
         "State" : {
           "c2jName" : "state",
-          "c2jShape" : "AssetState",
+          "c2jShape" : "AssetModelState",
           "deprecated" : false,
-          "documentation" : "<p>The current status of the asset.</p>",
+          "documentation" : "<p>The current state of the asset model.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "AssetState",
-          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+          "enumType" : "AssetModelState",
+          "fluentSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
           "fluentSetterMethodName" : "withState",
-          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.\n@see AssetState*/",
+          "getterDocumentation" : "/**<p>The current state of the asset model.</p>\n@return The current state of the asset model.\n@see AssetModelState*/",
           "getterMethodName" : "getState",
           "getterModel" : {
             "returnType" : "String",
@@ -11568,7 +11775,7 @@
           "marshallingType" : "STRING",
           "name" : "State",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@see AssetState*/",
+          "setterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@see AssetModelState*/",
           "setterMethodName" : "setState",
           "setterModel" : {
             "timestampFormat" : null,
@@ -11583,13 +11790,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+          "varargSetterDocumentation" : "/**<p>The current state of the asset model.</p>\n@param state The current state of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetModelState*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "state",
             "variableType" : "String",
-            "documentation" : "<p>The current status of the asset.</p>",
+            "documentation" : "<p>The current state of the asset model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -11600,7 +11807,7 @@
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
       "required" : [ "state" ],
-      "shapeName" : "AssetStatus",
+      "shapeName" : "AssetModelStatus",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -11609,17 +11816,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetStatus",
-        "variableName" : "assetStatus",
-        "variableType" : "AssetStatus",
+        "variableDeclarationType" : "AssetModelStatus",
+        "variableName" : "assetModelStatus",
+        "variableType" : "AssetModelStatus",
         "documentation" : null,
-        "simpleType" : "AssetStatus",
-        "variableSetterType" : "AssetStatus"
+        "simpleType" : "AssetModelStatus",
+        "variableSetterType" : "AssetModelStatus"
       },
       "wrapper" : false
     },
-    "AssetSummary" : {
-      "c2jName" : "AssetSummary",
+    "AssetModelSummary" : {
+      "c2jName" : "AssetModelSummary",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -11627,11 +11834,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains a summary of an asset.</p>",
+      "documentation" : "<p>Contains a summary of an asset model.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetSummary",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetModelSummary",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -11642,12 +11849,12 @@
         "c2jName" : "id",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@return The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
         "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
@@ -11681,7 +11888,7 @@
         "marshallingType" : "STRING",
         "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+        "setterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
         "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11696,13 +11903,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -11711,12 +11918,12 @@
         "c2jName" : "arn",
         "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
         "getterMethodName" : "getArn",
         "getterModel" : {
           "returnType" : "String",
@@ -11750,7 +11957,7 @@
         "marshallingType" : "STRING",
         "name" : "Arn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
         "setterMethodName" : "setArn",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11765,13 +11972,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "arn",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -11780,12 +11987,12 @@
         "c2jName" : "name",
         "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset.</p>",
+        "documentation" : "<p>The name of the asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+        "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
         "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
@@ -11819,7 +12026,7 @@
         "marshallingType" : "STRING",
         "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+        "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.*/",
         "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11834,28 +12041,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>The name of the asset model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "description",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+        "documentation" : "<p>The asset model description.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@return The ID of the asset model used to create this asset.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDescription",
+        "getterDocumentation" : "/**<p>The asset model description.</p>\n@return The asset model description.*/",
+        "getterMethodName" : "getDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -11870,11 +12077,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "marshallLocationName" : "description",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "description",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -11886,14 +12093,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "Description",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.*/",
+        "setterMethodName" : "setDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "description",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -11903,13 +12110,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "description",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+          "documentation" : "<p>The asset model description.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -11918,12 +12125,12 @@
         "c2jName" : "creationDate",
         "c2jShape" : "Timestamp",
         "deprecated" : false,
-        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+        "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withCreationDate",
-        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+        "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
         "getterMethodName" : "getCreationDate",
         "getterModel" : {
           "returnType" : "java.util.Date",
@@ -11957,7 +12164,7 @@
         "marshallingType" : "DATE",
         "name" : "CreationDate",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+        "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.*/",
         "setterMethodName" : "setCreationDate",
         "setterModel" : {
           "timestampFormat" : null,
@@ -11972,13 +12179,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
           "variableName" : "creationDate",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
@@ -11987,12 +12194,12 @@
         "c2jName" : "lastUpdateDate",
         "c2jShape" : "Timestamp",
         "deprecated" : false,
-        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+        "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+        "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
         "getterMethodName" : "getLastUpdateDate",
         "getterModel" : {
           "returnType" : "java.util.Date",
@@ -12026,7 +12233,7 @@
         "marshallingType" : "DATE",
         "name" : "LastUpdateDate",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+        "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
         "setterMethodName" : "setLastUpdateDate",
         "setterModel" : {
           "timestampFormat" : null,
@@ -12041,30 +12248,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
           "variableName" : "lastUpdateDate",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "status",
-        "c2jShape" : "AssetStatus",
+        "c2jShape" : "AssetModelStatus",
         "deprecated" : false,
-        "documentation" : "<p>The current status of the asset.</p>",
+        "documentation" : "<p>The current status of the asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withStatus",
-        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+        "getterDocumentation" : "/**<p>The current status of the asset model.</p>\n@return The current status of the asset model.*/",
         "getterMethodName" : "getStatus",
         "getterModel" : {
-          "returnType" : "AssetStatus",
+          "returnType" : "AssetModelStatus",
           "documentation" : null
         },
         "http" : {
@@ -12095,183 +12302,30 @@
         "marshallingType" : "STRUCTURED",
         "name" : "Status",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+        "setterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.*/",
         "setterMethodName" : "setStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
+          "variableDeclarationType" : "AssetModelStatus",
           "variableName" : "status",
-          "variableType" : "AssetStatus",
+          "variableType" : "AssetModelStatus",
           "documentation" : "",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
+          "variableDeclarationType" : "AssetModelStatus",
           "variableName" : "status",
-          "variableType" : "AssetStatus",
-          "documentation" : "<p>The current status of the asset.</p>",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "hierarchies",
-        "c2jShape" : "AssetHierarchies",
-        "deprecated" : false,
-        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withHierarchies",
-        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "getterMethodName" : "getHierarchies",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetHierarchy>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "hierarchies",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "hierarchies",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetHierarchy",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetHierarchy",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetHierarchy",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetHierarchy",
-          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-          "templateType" : "java.util.List<AssetHierarchy>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Hierarchies",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "setterMethodName" : "setHierarchies",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "hierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "hierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+          "variableType" : "AssetModelStatus",
+          "documentation" : "<p>The current status of the asset model.</p>",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "xmlNameSpaceUri" : null
       } ],
@@ -12280,12 +12334,12 @@
           "c2jName" : "arn",
           "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
           "getterMethodName" : "getArn",
           "getterModel" : {
             "returnType" : "String",
@@ -12319,7 +12373,7 @@
           "marshallingType" : "STRING",
           "name" : "Arn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
           "setterMethodName" : "setArn",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12334,83 +12388,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "arn",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@return The ID of the asset model used to create this asset.*/",
-          "getterMethodName" : "getAssetModelId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.*/",
-          "setterMethodName" : "setAssetModelId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -12420,12 +12404,12 @@
           "c2jName" : "creationDate",
           "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withCreationDate",
-          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+          "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
           "getterMethodName" : "getCreationDate",
           "getterModel" : {
             "returnType" : "java.util.Date",
@@ -12459,7 +12443,7 @@
           "marshallingType" : "DATE",
           "name" : "CreationDate",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+          "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.*/",
           "setterMethodName" : "setCreationDate",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12474,31 +12458,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param creationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : "unixTimestamp",
             "variableDeclarationType" : "java.util.Date",
             "variableName" : "creationDate",
             "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+            "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
             "simpleType" : "Date",
             "variableSetterType" : "java.util.Date"
           },
           "xmlNameSpaceUri" : null
         },
-        "Hierarchies" : {
-          "c2jName" : "hierarchies",
-          "c2jShape" : "AssetHierarchies",
+        "Description" : {
+          "c2jName" : "description",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+          "documentation" : "<p>The asset model description.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withHierarchies",
-          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "getterMethodName" : "getHierarchies",
+          "fluentSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDescription",
+          "getterDocumentation" : "/**<p>The asset model description.</p>\n@return The asset model description.*/",
+          "getterMethodName" : "getDescription",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetHierarchy>",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -12511,132 +12495,48 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "hierarchies",
+            "marshallLocationName" : "description",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "hierarchies",
+            "unmarshallLocationName" : "description",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetHierarchy",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetHierarchy",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetHierarchy",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetHierarchy",
-            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-            "templateType" : "java.util.List<AssetHierarchy>"
-          },
+          "list" : false,
+          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Hierarchies",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Description",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "setterMethodName" : "setHierarchies",
+          "setterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.*/",
+          "setterMethodName" : "setDescription",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "hierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
+            "variableDeclarationType" : "String",
+            "variableName" : "description",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The asset model description.</p>\n@param description The asset model description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "hierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
-            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+            "variableDeclarationType" : "String",
+            "variableName" : "description",
+            "variableType" : "String",
+            "documentation" : "<p>The asset model description.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
@@ -12644,12 +12544,12 @@
           "c2jName" : "id",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@return The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
           "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
@@ -12683,7 +12583,7 @@
           "marshallingType" : "STRING",
           "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+          "setterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).*/",
           "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12698,13 +12598,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>\n@param id The ID of the asset model (used with AWS IoT SiteWise APIs).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
+            "documentation" : "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -12714,12 +12614,12 @@
           "c2jName" : "lastUpdateDate",
           "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+          "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
           "getterMethodName" : "getLastUpdateDate",
           "getterModel" : {
             "returnType" : "java.util.Date",
@@ -12753,7 +12653,7 @@
           "marshallingType" : "DATE",
           "name" : "LastUpdateDate",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+          "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
           "setterMethodName" : "setLastUpdateDate",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12768,13 +12668,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : "unixTimestamp",
             "variableDeclarationType" : "java.util.Date",
             "variableName" : "lastUpdateDate",
             "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+            "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
             "simpleType" : "Date",
             "variableSetterType" : "java.util.Date"
           },
@@ -12784,12 +12684,12 @@
           "c2jName" : "name",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>The name of the asset model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+          "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
           "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
@@ -12823,7 +12723,7 @@
           "marshallingType" : "STRING",
           "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+          "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.*/",
           "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
@@ -12838,13 +12738,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param name The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset.</p>",
+            "documentation" : "<p>The name of the asset model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -12852,17 +12752,17 @@
         },
         "Status" : {
           "c2jName" : "status",
-          "c2jShape" : "AssetStatus",
+          "c2jShape" : "AssetModelStatus",
           "deprecated" : false,
-          "documentation" : "<p>The current status of the asset.</p>",
+          "documentation" : "<p>The current status of the asset model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withStatus",
-          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+          "getterDocumentation" : "/**<p>The current status of the asset model.</p>\n@return The current status of the asset model.*/",
           "getterMethodName" : "getStatus",
           "getterModel" : {
-            "returnType" : "AssetStatus",
+            "returnType" : "AssetModelStatus",
             "documentation" : null
           },
           "http" : {
@@ -12893,30 +12793,30 @@
           "marshallingType" : "STRUCTURED",
           "name" : "Status",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+          "setterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.*/",
           "setterMethodName" : "setStatus",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
+            "variableDeclarationType" : "AssetModelStatus",
             "variableName" : "status",
-            "variableType" : "AssetStatus",
+            "variableType" : "AssetModelStatus",
             "documentation" : "",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The current status of the asset model.</p>\n@param status The current status of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
+            "variableDeclarationType" : "AssetModelStatus",
             "variableName" : "status",
-            "variableType" : "AssetStatus",
-            "documentation" : "<p>The current status of the asset.</p>",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
+            "variableType" : "AssetModelStatus",
+            "documentation" : "<p>The current status of the asset model.</p>",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
           },
           "xmlNameSpaceUri" : null
         }
@@ -12924,8 +12824,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id", "arn", "name", "assetModelId", "creationDate", "lastUpdateDate", "status", "hierarchies" ],
-      "shapeName" : "AssetSummary",
+      "required" : [ "id", "arn", "name", "description", "creationDate", "lastUpdateDate", "status" ],
+      "shapeName" : "AssetModelSummary",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -12934,17 +12834,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssetSummary",
-        "variableName" : "assetSummary",
-        "variableType" : "AssetSummary",
+        "variableDeclarationType" : "AssetModelSummary",
+        "variableName" : "assetModelSummary",
+        "variableType" : "AssetModelSummary",
         "documentation" : null,
-        "simpleType" : "AssetSummary",
-        "variableSetterType" : "AssetSummary"
+        "simpleType" : "AssetModelSummary",
+        "variableSetterType" : "AssetModelSummary"
       },
       "wrapper" : false
     },
-    "AssociateAssetsRequest" : {
-      "c2jName" : "AssociateAssetsRequest",
+    "AssetProperty" : {
+      "c2jName" : "AssetProperty",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -12952,35 +12852,28 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains asset property information.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.AssociateAssetsRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetProperty",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "AssociateAssets",
-        "locationName" : null,
-        "requestUri" : "/assets/{assetId}/associate",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
+        "c2jName" : "id",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the parent asset.</p>",
+        "documentation" : "<p>The ID of the asset property.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@return The ID of the parent asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -12993,14 +12886,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : true
+          "unmarshallLocationName" : "id",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -13011,14 +12904,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -13028,28 +12921,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the parent asset.</p>",
+          "documentation" : "<p>The ID of the asset property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "hierarchyId",
-        "c2jShape" : "ID",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The name of the property.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withHierarchyId",
-        "getterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getHierarchyId",
+        "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -13064,11 +12957,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "hierarchyId",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "hierarchyId",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -13080,14 +12973,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "HierarchyId",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setHierarchyId",
+        "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "hierarchyId",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -13097,28 +12990,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "hierarchyId",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The name of the property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "childAssetId",
-        "c2jShape" : "ID",
+        "c2jName" : "alias",
+        "c2jShape" : "PropertyAlias",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the child asset to be associated.</p>",
+        "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withChildAssetId",
-        "getterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@return The ID of the child asset to be associated.*/",
-        "getterMethodName" : "getChildAssetId",
+        "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAlias",
+        "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getAlias",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -13133,11 +13026,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "childAssetId",
+          "marshallLocationName" : "alias",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "childAssetId",
+          "unmarshallLocationName" : "alias",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -13149,14 +13042,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ChildAssetId",
+        "name" : "Alias",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.*/",
-        "setterMethodName" : "setChildAssetId",
+        "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setAlias",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetId",
+          "variableName" : "alias",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -13166,28 +13059,97 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "childAssetId",
+          "variableName" : "alias",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the child asset to be associated.</p>",
+          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+        "c2jName" : "notification",
+        "c2jShape" : "PropertyNotification",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withNotification",
+        "getterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@return The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
+        "getterMethodName" : "getNotification",
+        "getterModel" : {
+          "returnType" : "PropertyNotification",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "notification",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "notification",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Notification",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
+        "setterMethodName" : "setNotification",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PropertyNotification",
+          "variableName" : "notification",
+          "variableType" : "PropertyNotification",
+          "documentation" : "",
+          "simpleType" : "PropertyNotification",
+          "variableSetterType" : "PropertyNotification"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PropertyNotification",
+          "variableName" : "notification",
+          "variableType" : "PropertyNotification",
+          "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
+          "simpleType" : "PropertyNotification",
+          "variableSetterType" : "PropertyNotification"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "dataType",
+        "c2jShape" : "PropertyDataType",
+        "deprecated" : false,
+        "documentation" : "<p>The data type of the asset property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "PropertyDataType",
+        "fluentSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+        "fluentSetterMethodName" : "withDataType",
+        "getterDocumentation" : "/**<p>The data type of the asset property.</p>\n@return The data type of the asset property.\n@see PropertyDataType*/",
+        "getterMethodName" : "getDataType",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -13202,14 +13164,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
+          "marshallLocationName" : "dataType",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "dataType",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -13218,14 +13180,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "DataType",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@see PropertyDataType*/",
+        "setterMethodName" : "setDataType",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "dataType",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -13235,30 +13197,168 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "dataType",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The data type of the asset property.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "dataTypeSpec",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDataTypeSpec",
+        "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@return The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+        "getterMethodName" : "getDataTypeSpec",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "dataTypeSpec",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "dataTypeSpec",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "DataTypeSpec",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+        "setterMethodName" : "setDataTypeSpec",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "dataTypeSpec",
+          "variableType" : "String",
+          "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "unit",
+        "c2jShape" : "PropertyUnit",
+        "deprecated" : false,
+        "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withUnit",
+        "getterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@return The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+        "getterMethodName" : "getUnit",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "unit",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "unit",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Unit",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+        "setterMethodName" : "setUnit",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "unit",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "unit",
+          "variableType" : "String",
+          "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "Alias" : {
+          "c2jName" : "alias",
+          "c2jShape" : "PropertyAlias",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the parent asset.</p>",
+          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@return The ID of the parent asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAlias",
+          "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getAlias",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -13271,14 +13371,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "alias",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
-            "uri" : true
+            "unmarshallLocationName" : "alias",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -13289,14 +13389,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "Alias",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setAlias",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "alias",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -13306,29 +13406,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param alias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "alias",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the parent asset.</p>",
+            "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ChildAssetId" : {
-          "c2jName" : "childAssetId",
-          "c2jShape" : "ID",
+        "DataType" : {
+          "c2jName" : "dataType",
+          "c2jShape" : "PropertyDataType",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the child asset to be associated.</p>",
+          "documentation" : "<p>The data type of the asset property.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withChildAssetId",
-          "getterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@return The ID of the child asset to be associated.*/",
-          "getterMethodName" : "getChildAssetId",
+          "enumType" : "PropertyDataType",
+          "fluentSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
+          "fluentSetterMethodName" : "withDataType",
+          "getterDocumentation" : "/**<p>The data type of the asset property.</p>\n@return The data type of the asset property.\n@see PropertyDataType*/",
+          "getterMethodName" : "getDataType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -13343,11 +13443,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "childAssetId",
+            "marshallLocationName" : "dataType",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "childAssetId",
+            "unmarshallLocationName" : "dataType",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -13359,14 +13459,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ChildAssetId",
+          "name" : "DataType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.*/",
-          "setterMethodName" : "setChildAssetId",
+          "setterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@see PropertyDataType*/",
+          "setterMethodName" : "setDataType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetId",
+            "variableName" : "dataType",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -13376,29 +13476,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the asset property.</p>\n@param dataType The data type of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.\n@see PropertyDataType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "childAssetId",
+            "variableName" : "dataType",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the child asset to be associated.</p>",
+            "documentation" : "<p>The data type of the asset property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "DataTypeSpec" : {
+          "c2jName" : "dataTypeSpec",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDataTypeSpec",
+          "getterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@return The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+          "getterMethodName" : "getDataTypeSpec",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -13413,14 +13513,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
+            "marshallLocationName" : "dataTypeSpec",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "dataTypeSpec",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -13429,14 +13529,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "DataTypeSpec",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.*/",
+          "setterMethodName" : "setDataTypeSpec",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "dataTypeSpec",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -13446,29 +13546,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>\n@param dataTypeSpec The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "dataTypeSpec",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "HierarchyId" : {
-          "c2jName" : "hierarchyId",
+        "Id" : {
+          "c2jName" : "id",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The ID of the asset property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withHierarchyId",
-          "getterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getHierarchyId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -13483,11 +13583,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "hierarchyId",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "hierarchyId",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -13499,14 +13599,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "HierarchyId",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setHierarchyId",
+          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "hierarchyId",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -13516,65 +13616,234 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param id The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "hierarchyId",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>The ID of the asset property.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the property.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+          "getterMethodName" : "getName",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "name",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "name",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Name",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+          "setterMethodName" : "setName",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the property.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Notification" : {
+          "c2jName" : "notification",
+          "c2jShape" : "PropertyNotification",
+          "deprecated" : false,
+          "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withNotification",
+          "getterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@return The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
+          "getterMethodName" : "getNotification",
+          "getterModel" : {
+            "returnType" : "PropertyNotification",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "notification",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "notification",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Notification",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.*/",
+          "setterMethodName" : "setNotification",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PropertyNotification",
+            "variableName" : "notification",
+            "variableType" : "PropertyNotification",
+            "documentation" : "",
+            "simpleType" : "PropertyNotification",
+            "variableSetterType" : "PropertyNotification"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n@param notification The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PropertyNotification",
+            "variableName" : "notification",
+            "variableType" : "PropertyNotification",
+            "documentation" : "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>",
+            "simpleType" : "PropertyNotification",
+            "variableSetterType" : "PropertyNotification"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Unit" : {
+          "c2jName" : "unit",
+          "c2jShape" : "PropertyUnit",
+          "deprecated" : false,
+          "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withUnit",
+          "getterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@return The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+          "getterMethodName" : "getUnit",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "unit",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "unit",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Unit",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.*/",
+          "setterMethodName" : "setUnit",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "unit",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>\n@param unit The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "unit",
+            "variableType" : "String",
+            "documentation" : "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetId", "hierarchyId", "childAssetId" ],
-      "shapeName" : "AssociateAssetsRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "AssociateAssetsRequest",
-        "variableName" : "associateAssetsRequest",
-        "variableType" : "AssociateAssetsRequest",
-        "documentation" : null,
-        "simpleType" : "AssociateAssetsRequest",
-        "variableSetterType" : "AssociateAssetsRequest"
-      },
-      "wrapper" : false
-    },
-    "AssociateAssetsResult" : {
-      "c2jName" : "AssociateAssetsResult",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : null,
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.AssociateAssetsResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "AssociateAssetsResult",
+      "required" : [ "id", "name", "dataType" ],
+      "shapeName" : "AssetProperty",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -13583,17 +13852,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssociateAssetsResult",
-        "variableName" : "associateAssetsResult",
-        "variableType" : "AssociateAssetsResult",
+        "variableDeclarationType" : "AssetProperty",
+        "variableName" : "assetProperty",
+        "variableType" : "AssetProperty",
         "documentation" : null,
-        "simpleType" : "AssociateAssetsResult",
-        "variableSetterType" : "AssociateAssetsResult"
+        "simpleType" : "AssetProperty",
+        "variableSetterType" : "AssetProperty"
       },
       "wrapper" : false
     },
-    "AssociatedAssetsSummary" : {
-      "c2jName" : "AssociatedAssetsSummary",
+    "AssetPropertyValue" : {
+      "c2jName" : "AssetPropertyValue",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -13601,11 +13870,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains a summary of an associated asset.</p>",
+      "documentation" : "<p>Contains asset property value information.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssociatedAssetsSummary",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetPropertyValue",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -13613,87 +13882,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "id",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "id",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Id",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
-        "setterMethodName" : "setId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "arn",
-        "c2jShape" : "ARN",
+        "c2jName" : "value",
+        "c2jShape" : "Variant",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+        "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "getterMethodName" : "getArn",
+        "fluentSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withValue",
+        "getterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@return The value of the asset property (see <code>Variant</code>).*/",
+        "getterMethodName" : "getValue",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "Variant",
           "documentation" : null
         },
         "http" : {
@@ -13706,11 +13906,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "arn",
+          "marshallLocationName" : "value",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "arn",
+          "unmarshallLocationName" : "value",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -13720,49 +13920,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Arn",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Value",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "setterMethodName" : "setArn",
+        "setterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).*/",
+        "setterMethodName" : "setValue",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "arn",
-          "variableType" : "String",
+          "variableDeclarationType" : "Variant",
+          "variableName" : "value",
+          "variableType" : "Variant",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Variant",
+          "variableSetterType" : "Variant"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "arn",
-          "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "Variant",
+          "variableName" : "value",
+          "variableType" : "Variant",
+          "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
+          "simpleType" : "Variant",
+          "variableSetterType" : "Variant"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
+        "c2jName" : "timestamp",
+        "c2jShape" : "TimeInNanos",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset.</p>",
+        "documentation" : "<p>The timestamp of the asset property value.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
-        "getterMethodName" : "getName",
+        "fluentSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTimestamp",
+        "getterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@return The timestamp of the asset property value.*/",
+        "getterMethodName" : "getTimestamp",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "TimeInNanos",
           "documentation" : null
         },
         "http" : {
@@ -13775,11 +13975,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
+          "marshallLocationName" : "timestamp",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "name",
+          "unmarshallLocationName" : "timestamp",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -13789,47 +13989,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Name",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Timestamp",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
-        "setterMethodName" : "setName",
+        "setterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.*/",
+        "setterMethodName" : "setTimestamp",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
+          "variableDeclarationType" : "TimeInNanos",
+          "variableName" : "timestamp",
+          "variableType" : "TimeInNanos",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "TimeInNanos",
+          "variableSetterType" : "TimeInNanos"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
-          "documentation" : "<p>The name of the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "TimeInNanos",
+          "variableName" : "timestamp",
+          "variableType" : "TimeInNanos",
+          "documentation" : "<p>The timestamp of the asset property value.</p>",
+          "simpleType" : "TimeInNanos",
+          "variableSetterType" : "TimeInNanos"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "quality",
+        "c2jShape" : "Quality",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+        "documentation" : "<p>The quality of the asset property value.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@return The ID of the asset model used to create the asset.*/",
-        "getterMethodName" : "getAssetModelId",
+        "enumType" : "Quality",
+        "fluentSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
+        "fluentSetterMethodName" : "withQuality",
+        "getterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@return The quality of the asset property value.\n@see Quality*/",
+        "getterMethodName" : "getQuality",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -13844,11 +14044,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "marshallLocationName" : "quality",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "quality",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -13860,14 +14060,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "Quality",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@see Quality*/",
+        "setterMethodName" : "setQuality",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "quality",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -13877,390 +14077,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "quality",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+          "documentation" : "<p>The quality of the asset property value.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "creationDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withCreationDate",
-        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
-        "getterMethodName" : "getCreationDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "creationDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "creationDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "CreationDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
-        "setterMethodName" : "setCreationDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "lastUpdateDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getLastUpdateDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "lastUpdateDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "lastUpdateDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "LastUpdateDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setLastUpdateDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "status",
-        "c2jShape" : "AssetStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The current status of the asset.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withStatus",
-        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
-        "getterMethodName" : "getStatus",
-        "getterModel" : {
-          "returnType" : "AssetStatus",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "status",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "status",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Status",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
-        "setterMethodName" : "setStatus",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "status",
-          "variableType" : "AssetStatus",
-          "documentation" : "",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "status",
-          "variableType" : "AssetStatus",
-          "documentation" : "<p>The current status of the asset.</p>",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "hierarchies",
-        "c2jShape" : "AssetHierarchies",
-        "deprecated" : false,
-        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withHierarchies",
-        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "getterMethodName" : "getHierarchies",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetHierarchy>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "hierarchies",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "hierarchies",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetHierarchy",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetHierarchy",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetHierarchy",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetHierarchy",
-          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-          "templateType" : "java.util.List<AssetHierarchy>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Hierarchies",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "setterMethodName" : "setHierarchies",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "hierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "hierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Arn" : {
-          "c2jName" : "arn",
-          "c2jShape" : "ARN",
+        "Quality" : {
+          "c2jName" : "quality",
+          "c2jShape" : "Quality",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>The quality of the asset property value.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "getterMethodName" : "getArn",
+          "enumType" : "Quality",
+          "fluentSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
+          "fluentSetterMethodName" : "withQuality",
+          "getterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@return The quality of the asset property value.\n@see Quality*/",
+          "getterMethodName" : "getQuality",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -14275,11 +14115,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "arn",
+            "marshallLocationName" : "quality",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "arn",
+            "unmarshallLocationName" : "quality",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -14291,14 +14131,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Arn",
+          "name" : "Quality",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "setterMethodName" : "setArn",
+          "setterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@see Quality*/",
+          "setterMethodName" : "setQuality",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "arn",
+            "variableName" : "quality",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -14308,31 +14148,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The quality of the asset property value.</p>\n@param quality The quality of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Quality*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "arn",
+            "variableName" : "quality",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+            "documentation" : "<p>The quality of the asset property value.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
+        "Timestamp" : {
+          "c2jName" : "timestamp",
+          "c2jShape" : "TimeInNanos",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+          "documentation" : "<p>The timestamp of the asset property value.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@return The ID of the asset model used to create the asset.*/",
-          "getterMethodName" : "getAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTimestamp",
+          "getterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@return The timestamp of the asset property value.*/",
+          "getterMethodName" : "getTimestamp",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "TimeInNanos",
             "documentation" : null
           },
           "http" : {
@@ -14345,11 +14185,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
+            "marshallLocationName" : "timestamp",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
+            "unmarshallLocationName" : "timestamp",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -14359,50 +14199,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelId",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Timestamp",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.*/",
-          "setterMethodName" : "setAssetModelId",
+          "setterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.*/",
+          "setterMethodName" : "setTimestamp",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
+            "variableDeclarationType" : "TimeInNanos",
+            "variableName" : "timestamp",
+            "variableType" : "TimeInNanos",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "TimeInNanos",
+            "variableSetterType" : "TimeInNanos"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The timestamp of the asset property value.</p>\n@param timestamp The timestamp of the asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "TimeInNanos",
+            "variableName" : "timestamp",
+            "variableType" : "TimeInNanos",
+            "documentation" : "<p>The timestamp of the asset property value.</p>",
+            "simpleType" : "TimeInNanos",
+            "variableSetterType" : "TimeInNanos"
           },
           "xmlNameSpaceUri" : null
         },
-        "CreationDate" : {
-          "c2jName" : "creationDate",
-          "c2jShape" : "Timestamp",
+        "Value" : {
+          "c2jName" : "value",
+          "c2jShape" : "Variant",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withCreationDate",
-          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
-          "getterMethodName" : "getCreationDate",
+          "fluentSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withValue",
+          "getterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@return The value of the asset property (see <code>Variant</code>).*/",
+          "getterMethodName" : "getValue",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "Variant",
             "documentation" : null
           },
           "http" : {
@@ -14415,11 +14255,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "creationDate",
+            "marshallLocationName" : "value",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "creationDate",
+            "unmarshallLocationName" : "value",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -14429,274 +14269,233 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "CreationDate",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Value",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
-          "setterMethodName" : "setCreationDate",
+          "setterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).*/",
+          "setterMethodName" : "setValue",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
+            "variableDeclarationType" : "Variant",
+            "variableName" : "value",
+            "variableType" : "Variant",
             "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "simpleType" : "Variant",
+            "variableSetterType" : "Variant"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The value of the asset property (see <code>Variant</code>).</p>\n@param value The value of the asset property (see <code>Variant</code>).\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "Hierarchies" : {
-          "c2jName" : "hierarchies",
-          "c2jShape" : "AssetHierarchies",
-          "deprecated" : false,
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withHierarchies",
-          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "getterMethodName" : "getHierarchies",
-          "getterModel" : {
-            "returnType" : "java.util.List<AssetHierarchy>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "hierarchies",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "hierarchies",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetHierarchy",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetHierarchy",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetHierarchy",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetHierarchy",
-            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-            "templateType" : "java.util.List<AssetHierarchy>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Hierarchies",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "setterMethodName" : "setHierarchies",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "hierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
-            "documentation" : "",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "hierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
-            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Variant",
+            "variableName" : "value",
+            "variableType" : "Variant",
+            "documentation" : "<p>The value of the asset property (see <code>Variant</code>).</p>",
+            "simpleType" : "Variant",
+            "variableSetterType" : "Variant"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "value", "timestamp" ],
+      "shapeName" : "AssetPropertyValue",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetPropertyValue",
+        "variableName" : "assetPropertyValue",
+        "variableType" : "AssetPropertyValue",
+        "documentation" : null,
+        "simpleType" : "AssetPropertyValue",
+        "variableSetterType" : "AssetPropertyValue"
+      },
+      "wrapper" : false
+    },
+    "AssetRelationshipSummary" : {
+      "c2jName" : "AssetRelationshipSummary",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information about assets that are related to one another.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetRelationshipSummary",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "hierarchyInfo",
+        "c2jShape" : "AssetHierarchyInfo",
+        "deprecated" : false,
+        "documentation" : "<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withHierarchyInfo",
+        "getterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@return The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.*/",
+        "getterMethodName" : "getHierarchyInfo",
+        "getterModel" : {
+          "returnType" : "AssetHierarchyInfo",
+          "documentation" : null
         },
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "id",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Id",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
-          "setterMethodName" : "setId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "hierarchyInfo",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "hierarchyInfo",
+          "uri" : false
         },
-        "LastUpdateDate" : {
-          "c2jName" : "lastUpdateDate",
-          "c2jShape" : "Timestamp",
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "HierarchyInfo",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.*/",
+        "setterMethodName" : "setHierarchyInfo",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetHierarchyInfo",
+          "variableName" : "hierarchyInfo",
+          "variableType" : "AssetHierarchyInfo",
+          "documentation" : "",
+          "simpleType" : "AssetHierarchyInfo",
+          "variableSetterType" : "AssetHierarchyInfo"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetHierarchyInfo",
+          "variableName" : "hierarchyInfo",
+          "variableType" : "AssetHierarchyInfo",
+          "documentation" : "<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>",
+          "simpleType" : "AssetHierarchyInfo",
+          "variableSetterType" : "AssetHierarchyInfo"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "relationshipType",
+        "c2jShape" : "AssetRelationshipType",
+        "deprecated" : false,
+        "documentation" : "<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "AssetRelationshipType",
+        "fluentSetterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetRelationshipType*/",
+        "fluentSetterMethodName" : "withRelationshipType",
+        "getterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@return The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@see AssetRelationshipType*/",
+        "getterMethodName" : "getRelationshipType",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "relationshipType",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "relationshipType",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "RelationshipType",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@see AssetRelationshipType*/",
+        "setterMethodName" : "setRelationshipType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "relationshipType",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetRelationshipType*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "relationshipType",
+          "variableType" : "String",
+          "documentation" : "<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "HierarchyInfo" : {
+          "c2jName" : "hierarchyInfo",
+          "c2jShape" : "AssetHierarchyInfo",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getLastUpdateDate",
+          "fluentSetterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withHierarchyInfo",
+          "getterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@return The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.*/",
+          "getterMethodName" : "getHierarchyInfo",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "AssetHierarchyInfo",
             "documentation" : null
           },
           "http" : {
@@ -14709,11 +14508,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "lastUpdateDate",
+            "marshallLocationName" : "hierarchyInfo",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "lastUpdateDate",
+            "unmarshallLocationName" : "hierarchyInfo",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -14723,48 +14522,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "LastUpdateDate",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "HierarchyInfo",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
-          "setterMethodName" : "setLastUpdateDate",
+          "setterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.*/",
+          "setterMethodName" : "setHierarchyInfo",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
+            "variableDeclarationType" : "AssetHierarchyInfo",
+            "variableName" : "hierarchyInfo",
+            "variableType" : "AssetHierarchyInfo",
             "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "simpleType" : "AssetHierarchyInfo",
+            "variableSetterType" : "AssetHierarchyInfo"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>\n@param hierarchyInfo The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetHierarchyInfo",
+            "variableName" : "hierarchyInfo",
+            "variableType" : "AssetHierarchyInfo",
+            "documentation" : "<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>",
+            "simpleType" : "AssetHierarchyInfo",
+            "variableSetterType" : "AssetHierarchyInfo"
           },
           "xmlNameSpaceUri" : null
         },
-        "Name" : {
-          "c2jName" : "name",
-          "c2jShape" : "Name",
+        "RelationshipType" : {
+          "c2jName" : "relationshipType",
+          "c2jShape" : "AssetRelationshipType",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
-          "getterMethodName" : "getName",
+          "enumType" : "AssetRelationshipType",
+          "fluentSetterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetRelationshipType*/",
+          "fluentSetterMethodName" : "withRelationshipType",
+          "getterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@return The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@see AssetRelationshipType*/",
+          "getterMethodName" : "getRelationshipType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -14779,11 +14578,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "name",
+            "marshallLocationName" : "relationshipType",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "name",
+            "unmarshallLocationName" : "relationshipType",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -14795,14 +14594,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Name",
+          "name" : "RelationshipType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
-          "setterMethodName" : "setName",
+          "setterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@see AssetRelationshipType*/",
+          "setterMethodName" : "setRelationshipType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "relationshipType",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -14812,94 +14611,24 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>\n@param relationshipType The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetRelationshipType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "name",
+            "variableName" : "relationshipType",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset.</p>",
+            "documentation" : "<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "Status" : {
-          "c2jName" : "status",
-          "c2jShape" : "AssetStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The current status of the asset.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withStatus",
-          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
-          "getterMethodName" : "getStatus",
-          "getterModel" : {
-            "returnType" : "AssetStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "status",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "status",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Status",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
-          "setterMethodName" : "setStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "status",
-            "variableType" : "AssetStatus",
-            "documentation" : "",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "status",
-            "variableType" : "AssetStatus",
-            "documentation" : "<p>The current status of the asset.</p>",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id", "arn", "name", "assetModelId", "creationDate", "lastUpdateDate", "status", "hierarchies" ],
-      "shapeName" : "AssociatedAssetsSummary",
+      "required" : [ "relationshipType" ],
+      "shapeName" : "AssetRelationshipSummary",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -14908,17 +14637,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AssociatedAssetsSummary",
-        "variableName" : "associatedAssetsSummary",
-        "variableType" : "AssociatedAssetsSummary",
+        "variableDeclarationType" : "AssetRelationshipSummary",
+        "variableName" : "assetRelationshipSummary",
+        "variableType" : "AssetRelationshipSummary",
         "documentation" : null,
-        "simpleType" : "AssociatedAssetsSummary",
-        "variableSetterType" : "AssociatedAssetsSummary"
+        "simpleType" : "AssetRelationshipSummary",
+        "variableSetterType" : "AssetRelationshipSummary"
       },
       "wrapper" : false
     },
-    "Attribute" : {
-      "c2jName" : "Attribute",
+    "AssetRelationshipType" : {
+      "c2jName" : "AssetRelationshipType",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -14926,47 +14655,153 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains an asset attribute property. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#attributes\">Attributes</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "documentation" : "",
       "endpointDiscoveryMembers" : null,
-      "enums" : null,
+      "enums" : [ {
+        "name" : "HIERARCHY",
+        "value" : "HIERARCHY"
+      } ],
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Attribute",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetRelationshipType",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "defaultValue",
-        "c2jShape" : "DefaultValue",
-        "deprecated" : false,
-        "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDefaultValue",
-        "getterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getDefaultValue",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AssetRelationshipType",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetRelationshipType",
+        "variableName" : "assetRelationshipType",
+        "variableType" : "AssetRelationshipType",
+        "documentation" : null,
+        "simpleType" : "AssetRelationshipType",
+        "variableSetterType" : "AssetRelationshipType"
+      },
+      "wrapper" : false
+    },
+    "AssetState" : {
+      "c2jName" : "AssetState",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "CREATING",
+        "value" : "CREATING"
+      }, {
+        "name" : "ACTIVE",
+        "value" : "ACTIVE"
+      }, {
+        "name" : "UPDATING",
+        "value" : "UPDATING"
+      }, {
+        "name" : "DELETING",
+        "value" : "DELETING"
+      }, {
+        "name" : "FAILED",
+        "value" : "FAILED"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AssetState",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AssetState",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssetState",
+        "variableName" : "assetState",
+        "variableType" : "AssetState",
+        "documentation" : null,
+        "simpleType" : "AssetState",
+        "variableSetterType" : "AssetState"
+      },
+      "wrapper" : false
+    },
+    "AssetStatus" : {
+      "c2jName" : "AssetStatus",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information about the current status of an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetStatus",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "state",
+        "c2jShape" : "AssetState",
+        "deprecated" : false,
+        "documentation" : "<p>The current status of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "AssetState",
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+        "fluentSetterMethodName" : "withState",
+        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.\n@see AssetState*/",
+        "getterMethodName" : "getState",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "defaultValue",
+          "marshallLocationName" : "state",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "defaultValue",
+          "unmarshallLocationName" : "state",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -14978,14 +14813,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DefaultValue",
+        "name" : "State",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setDefaultValue",
+        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@see AssetState*/",
+        "setterMethodName" : "setState",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "defaultValue",
+          "variableName" : "state",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -14995,30 +14830,169 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "defaultValue",
+          "variableName" : "state",
           "variableType" : "String",
-          "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The current status of the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "error",
+        "c2jShape" : "ErrorDetails",
+        "deprecated" : false,
+        "documentation" : "<p>Contains associated error information, if any.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withError",
+        "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
+        "getterMethodName" : "getError",
+        "getterModel" : {
+          "returnType" : "ErrorDetails",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "error",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "error",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Error",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
+        "setterMethodName" : "setError",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "ErrorDetails",
+          "variableName" : "error",
+          "variableType" : "ErrorDetails",
+          "documentation" : "",
+          "simpleType" : "ErrorDetails",
+          "variableSetterType" : "ErrorDetails"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "ErrorDetails",
+          "variableName" : "error",
+          "variableType" : "ErrorDetails",
+          "documentation" : "<p>Contains associated error information, if any.</p>",
+          "simpleType" : "ErrorDetails",
+          "variableSetterType" : "ErrorDetails"
+        },
+        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "DefaultValue" : {
-          "c2jName" : "defaultValue",
-          "c2jShape" : "DefaultValue",
+        "Error" : {
+          "c2jName" : "error",
+          "c2jShape" : "ErrorDetails",
           "deprecated" : false,
-          "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>Contains associated error information, if any.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDefaultValue",
-          "getterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getDefaultValue",
+          "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withError",
+          "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
+          "getterMethodName" : "getError",
+          "getterModel" : {
+            "returnType" : "ErrorDetails",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "error",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "error",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Error",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
+          "setterMethodName" : "setError",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "ErrorDetails",
+            "variableName" : "error",
+            "variableType" : "ErrorDetails",
+            "documentation" : "",
+            "simpleType" : "ErrorDetails",
+            "variableSetterType" : "ErrorDetails"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "ErrorDetails",
+            "variableName" : "error",
+            "variableType" : "ErrorDetails",
+            "documentation" : "<p>Contains associated error information, if any.</p>",
+            "simpleType" : "ErrorDetails",
+            "variableSetterType" : "ErrorDetails"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "State" : {
+          "c2jName" : "state",
+          "c2jShape" : "AssetState",
+          "deprecated" : false,
+          "documentation" : "<p>The current status of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "AssetState",
+          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
+          "fluentSetterMethodName" : "withState",
+          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.\n@see AssetState*/",
+          "getterMethodName" : "getState",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -15033,11 +15007,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "defaultValue",
+            "marshallLocationName" : "state",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "defaultValue",
+            "unmarshallLocationName" : "state",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -15049,14 +15023,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DefaultValue",
+          "name" : "State",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setDefaultValue",
+          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@see AssetState*/",
+          "setterMethodName" : "setState",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "defaultValue",
+            "variableName" : "state",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -15066,13 +15040,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param state The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.\n@see AssetState*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "defaultValue",
+            "variableName" : "state",
             "variableType" : "String",
-            "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>The current status of the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -15082,58 +15056,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "Attribute",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "Attribute",
-        "variableName" : "attribute",
-        "variableType" : "Attribute",
-        "documentation" : null,
-        "simpleType" : "Attribute",
-        "variableSetterType" : "Attribute"
-      },
-      "wrapper" : false
-    },
-    "AuthMode" : {
-      "c2jName" : "AuthMode",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "IAM",
-        "value" : "IAM"
-      }, {
-        "name" : "SSO",
-        "value" : "SSO"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AuthMode",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "AuthMode",
+      "required" : [ "state" ],
+      "shapeName" : "AssetStatus",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -15142,17 +15066,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "AuthMode",
-        "variableName" : "authMode",
-        "variableType" : "AuthMode",
+        "variableDeclarationType" : "AssetStatus",
+        "variableName" : "assetStatus",
+        "variableType" : "AssetStatus",
         "documentation" : null,
-        "simpleType" : "AuthMode",
-        "variableSetterType" : "AuthMode"
+        "simpleType" : "AssetStatus",
+        "variableSetterType" : "AssetStatus"
       },
       "wrapper" : false
     },
-    "BatchAssociateProjectAssetsRequest" : {
-      "c2jName" : "BatchAssociateProjectAssetsRequest",
+    "AssetSummary" : {
+      "c2jName" : "AssetSummary",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -15160,35 +15084,28 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains a summary of an asset.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchAssociateProjectAssetsRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssetSummary",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "BatchAssociateProjectAssets",
-        "locationName" : null,
-        "requestUri" : "/projects/{projectId}/assets/associate",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "projectId",
+        "c2jName" : "id",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
+        "documentation" : "<p>The ID of the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectId",
-        "getterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@return The ID of the project to which to associate the assets.*/",
-        "getterMethodName" : "getProjectId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -15201,14 +15118,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "projectId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectId",
-          "uri" : true
+          "unmarshallLocationName" : "id",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -15219,14 +15136,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectId",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.*/",
-        "setterMethodName" : "setProjectId",
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -15236,30 +15153,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetIds",
-        "c2jShape" : "IDs",
+        "c2jName" : "arn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetIds",
-        "getterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@return The IDs of the assets to be associated to the project.*/",
-        "getterMethodName" : "getAssetIds",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "getterMethodName" : "getArn",
         "getterModel" : {
-          "returnType" : "java.util.List<String>",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -15272,145 +15189,61 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetIds",
+          "marshallLocationName" : "arn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetIds",
+          "unmarshallLocationName" : "arn",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "ID",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "String",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "String",
-            "marshallingType" : "STRING",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "member",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : true,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "member",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "String",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : true,
-          "simpleType" : "String",
-          "templateImplType" : "java.util.ArrayList<String>",
-          "templateType" : "java.util.List<String>"
-        },
+        "list" : false,
+        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetIds",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Arn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.*/",
-        "setterMethodName" : "setAssetIds",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "setterMethodName" : "setArn",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<String>",
-          "variableName" : "assetIds",
-          "variableType" : "java.util.List<String>",
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "List<String>",
-          "variableSetterType" : "java.util.Collection<String>"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<String>",
-          "variableName" : "assetIds",
-          "variableType" : "java.util.List<String>",
-          "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
-          "simpleType" : "List<String>",
-          "variableSetterType" : "java.util.Collection<String>"
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>The name of the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -15425,14 +15258,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -15441,14 +15274,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -15458,366 +15291,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The name of the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetIds" : {
-          "c2jName" : "assetIds",
-          "c2jShape" : "IDs",
-          "deprecated" : false,
-          "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetIds",
-          "getterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@return The IDs of the assets to be associated to the project.*/",
-          "getterMethodName" : "getAssetIds",
-          "getterModel" : {
-            "returnType" : "java.util.List<String>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetIds",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetIds",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "ID",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "String",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "member",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : true,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "member",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "String",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : true,
-            "simpleType" : "String",
-            "templateImplType" : "java.util.ArrayList<String>",
-            "templateType" : "java.util.List<String>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "AssetIds",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.*/",
-          "setterMethodName" : "setAssetIds",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<String>",
-            "variableName" : "assetIds",
-            "variableType" : "java.util.List<String>",
-            "documentation" : "",
-            "simpleType" : "List<String>",
-            "variableSetterType" : "java.util.Collection<String>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<String>",
-            "variableName" : "assetIds",
-            "variableType" : "java.util.List<String>",
-            "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
-            "simpleType" : "List<String>",
-            "variableSetterType" : "java.util.Collection<String>"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ProjectId" : {
-          "c2jName" : "projectId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectId",
-          "getterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@return The ID of the project to which to associate the assets.*/",
-          "getterMethodName" : "getProjectId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "projectId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "projectId",
-            "uri" : true
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ProjectId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.*/",
-          "setterMethodName" : "setProjectId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "projectId", "assetIds" ],
-      "shapeName" : "BatchAssociateProjectAssetsRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchAssociateProjectAssetsRequest",
-        "variableName" : "batchAssociateProjectAssetsRequest",
-        "variableType" : "BatchAssociateProjectAssetsRequest",
-        "documentation" : null,
-        "simpleType" : "BatchAssociateProjectAssetsRequest",
-        "variableSetterType" : "BatchAssociateProjectAssetsRequest"
-      },
-      "wrapper" : false
-    },
-    "BatchAssociateProjectAssetsResult" : {
-      "c2jName" : "BatchAssociateProjectAssetsResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchAssociateProjectAssetsResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "errors",
-        "c2jShape" : "BatchAssociateProjectAssetsErrors",
+      }, {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>A list of associated error information, if any.</p>",
+        "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withErrors",
-        "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
-        "getterMethodName" : "getErrors",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@return The ID of the asset model used to create this asset.*/",
+        "getterMethodName" : "getAssetModelId",
         "getterModel" : {
-          "returnType" : "java.util.List<AssetErrorDetails>",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -15830,353 +15327,132 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errors",
+          "marshallLocationName" : "assetModelId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "errors",
+          "unmarshallLocationName" : "assetModelId",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetErrorDetails",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetErrorDetails",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetErrorDetails",
-              "variableName" : "member",
-              "variableType" : "AssetErrorDetails",
-              "documentation" : "",
-              "simpleType" : "AssetErrorDetails",
-              "variableSetterType" : "AssetErrorDetails"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetErrorDetails",
-              "variableName" : "member",
-              "variableType" : "AssetErrorDetails",
-              "documentation" : "",
-              "simpleType" : "AssetErrorDetails",
-              "variableSetterType" : "AssetErrorDetails"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetErrorDetails",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetErrorDetails",
-          "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
-          "templateType" : "java.util.List<AssetErrorDetails>"
-        },
+        "list" : false,
+        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Errors",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
-        "setterMethodName" : "setErrors",
+        "setterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.*/",
+        "setterMethodName" : "setAssetModelId",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<AssetErrorDetails>",
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "List<AssetErrorDetails>",
-          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<AssetErrorDetails>",
-          "documentation" : "<p>A list of associated error information, if any.</p>",
-          "simpleType" : "List<AssetErrorDetails>",
-          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Errors" : {
-          "c2jName" : "errors",
-          "c2jShape" : "BatchAssociateProjectAssetsErrors",
-          "deprecated" : false,
-          "documentation" : "<p>A list of associated error information, if any.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withErrors",
-          "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
-          "getterMethodName" : "getErrors",
-          "getterModel" : {
-            "returnType" : "java.util.List<AssetErrorDetails>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errors",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "errors",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetErrorDetails",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetErrorDetails",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetErrorDetails",
-                "variableName" : "member",
-                "variableType" : "AssetErrorDetails",
-                "documentation" : "",
-                "simpleType" : "AssetErrorDetails",
-                "variableSetterType" : "AssetErrorDetails"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetErrorDetails",
-                "variableName" : "member",
-                "variableType" : "AssetErrorDetails",
-                "documentation" : "",
-                "simpleType" : "AssetErrorDetails",
-                "variableSetterType" : "AssetErrorDetails"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetErrorDetails",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetErrorDetails",
-            "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
-            "templateType" : "java.util.List<AssetErrorDetails>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Errors",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
-          "setterMethodName" : "setErrors",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<AssetErrorDetails>",
-            "documentation" : "",
-            "simpleType" : "List<AssetErrorDetails>",
-            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<AssetErrorDetails>",
-            "documentation" : "<p>A list of associated error information, if any.</p>",
-            "simpleType" : "List<AssetErrorDetails>",
-            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "BatchAssociateProjectAssetsResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchAssociateProjectAssetsResult",
-        "variableName" : "batchAssociateProjectAssetsResult",
-        "variableType" : "BatchAssociateProjectAssetsResult",
-        "documentation" : null,
-        "simpleType" : "BatchAssociateProjectAssetsResult",
-        "variableSetterType" : "BatchAssociateProjectAssetsResult"
-      },
-      "wrapper" : false
-    },
-    "BatchDisassociateProjectAssetsRequest" : {
-      "c2jName" : "BatchDisassociateProjectAssetsRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchDisassociateProjectAssetsRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "BatchDisassociateProjectAssets",
-        "locationName" : null,
-        "requestUri" : "/projects/{projectId}/assets/disassociate",
-        "target" : null,
-        "verb" : "POST",
+      }, {
+        "c2jName" : "creationDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withCreationDate",
+        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+        "getterMethodName" : "getCreationDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "creationDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "creationDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "CreationDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+        "setterMethodName" : "setCreationDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
         "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "projectId",
-        "c2jShape" : "ID",
+      }, {
+        "c2jName" : "lastUpdateDate",
+        "c2jShape" : "Timestamp",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
+        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectId",
-        "getterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@return The ID of the project from which to disassociate the assets.*/",
-        "getterMethodName" : "getProjectId",
+        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getLastUpdateDate",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.Date",
           "documentation" : null
         },
         "http" : {
@@ -16187,14 +15463,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "projectId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "lastUpdateDate",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectId",
-          "uri" : true
+          "unmarshallLocationName" : "lastUpdateDate",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -16203,49 +15479,118 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ProjectId",
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "LastUpdateDate",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.*/",
-        "setterMethodName" : "setProjectId",
+        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setLastUpdateDate",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "projectId",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "lastUpdateDate",
+          "variableType" : "java.util.Date",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "lastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "status",
+        "c2jShape" : "AssetStatus",
+        "deprecated" : false,
+        "documentation" : "<p>The current status of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withStatus",
+        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+        "getterMethodName" : "getStatus",
+        "getterModel" : {
+          "returnType" : "AssetStatus",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "status",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "status",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Status",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+        "setterMethodName" : "setStatus",
+        "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "projectId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "status",
+          "variableType" : "AssetStatus",
+          "documentation" : "",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "status",
+          "variableType" : "AssetStatus",
+          "documentation" : "<p>The current status of the asset.</p>",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetIds",
-        "c2jShape" : "IDs",
+        "c2jName" : "hierarchies",
+        "c2jShape" : "AssetHierarchies",
         "deprecated" : false,
-        "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
+        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetIds",
-        "getterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@return The IDs of the assets to be disassociated from the project.*/",
-        "getterMethodName" : "getAssetIds",
+        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withHierarchies",
+        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "getterMethodName" : "getHierarchies",
         "getterModel" : {
-          "returnType" : "java.util.List<String>",
+          "returnType" : "java.util.List<AssetHierarchy>",
           "documentation" : null
         },
         "http" : {
@@ -16258,11 +15603,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetIds",
+          "marshallLocationName" : "hierarchies",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetIds",
+          "unmarshallLocationName" : "hierarchies",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -16274,7 +15619,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "ID",
+            "c2jShape" : "AssetHierarchy",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -16284,7 +15629,7 @@
             "getterDocumentation" : "/**\n@return */",
             "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "String",
+              "returnType" : "AssetHierarchy",
               "documentation" : null
             },
             "http" : {
@@ -16311,165 +15656,306 @@
             "listModel" : null,
             "map" : false,
             "mapModel" : null,
-            "marshallingTargetClass" : "String",
-            "marshallingType" : "STRING",
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
             "name" : "Member",
             "sensitive" : false,
             "setterDocumentation" : "/**\n@param member */",
             "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "String",
+              "variableDeclarationType" : "AssetHierarchy",
               "variableName" : "member",
-              "variableType" : "String",
+              "variableType" : "AssetHierarchy",
               "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
-            "simple" : true,
+            "simple" : false,
             "unmarshallingType" : null,
             "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "String",
+              "variableDeclarationType" : "AssetHierarchy",
               "variableName" : "member",
-              "variableType" : "String",
+              "variableType" : "AssetHierarchy",
               "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
             },
             "xmlNameSpaceUri" : null
           },
           "memberLocationName" : null,
-          "memberType" : "String",
+          "memberType" : "AssetHierarchy",
           "map" : false,
           "marshallNonAutoConstructedEmptyLists" : false,
           "memberAdditionalMarshallingPath" : null,
           "memberAdditionalUnmarshallingPath" : null,
           "sendEmptyQueryString" : false,
-          "simple" : true,
-          "simpleType" : "String",
-          "templateImplType" : "java.util.ArrayList<String>",
-          "templateType" : "java.util.List<String>"
+          "simple" : false,
+          "simpleType" : "AssetHierarchy",
+          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+          "templateType" : "java.util.List<AssetHierarchy>"
         },
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "List",
         "marshallingType" : "LIST",
-        "name" : "AssetIds",
+        "name" : "Hierarchies",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.*/",
-        "setterMethodName" : "setAssetIds",
+        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "setterMethodName" : "setHierarchies",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<String>",
-          "variableName" : "assetIds",
-          "variableType" : "java.util.List<String>",
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "hierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
           "documentation" : "",
-          "simpleType" : "List<String>",
-          "variableSetterType" : "java.util.Collection<String>"
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<String>",
-          "variableName" : "assetIds",
-          "variableType" : "java.util.List<String>",
-          "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
-          "simpleType" : "List<String>",
-          "variableSetterType" : "java.util.Collection<String>"
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "hierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
+      } ],
+      "membersAsMap" : {
+        "Arn" : {
+          "c2jName" : "arn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "getterMethodName" : "getArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "arn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "arn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Arn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "setterMethodName" : "setArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "arn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "arn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "idempotencyToken" : true,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ClientToken",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@return The ID of the asset model used to create this asset.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create this asset.</p>\n@param assetModelId The ID of the asset model used to create this asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model used to create this asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+        "CreationDate" : {
+          "c2jName" : "creationDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withCreationDate",
+          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+          "getterMethodName" : "getCreationDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "creationDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "creationDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "CreationDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+          "setterMethodName" : "setCreationDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetIds" : {
-          "c2jName" : "assetIds",
-          "c2jShape" : "IDs",
+        "Hierarchies" : {
+          "c2jName" : "hierarchies",
+          "c2jShape" : "AssetHierarchies",
           "deprecated" : false,
-          "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetIds",
-          "getterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@return The IDs of the assets to be disassociated from the project.*/",
-          "getterMethodName" : "getAssetIds",
+          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withHierarchies",
+          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "getterMethodName" : "getHierarchies",
           "getterModel" : {
-            "returnType" : "java.util.List<String>",
+            "returnType" : "java.util.List<AssetHierarchy>",
             "documentation" : null
           },
           "http" : {
@@ -16482,11 +15968,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetIds",
+            "marshallLocationName" : "hierarchies",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetIds",
+            "unmarshallLocationName" : "hierarchies",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -16498,7 +15984,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "ID",
+              "c2jShape" : "AssetHierarchy",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -16508,7 +15994,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "String",
+                "returnType" : "AssetHierarchy",
                 "documentation" : null
               },
               "http" : {
@@ -16535,93 +16021,93 @@
               "listModel" : null,
               "map" : false,
               "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
               "name" : "Member",
               "sensitive" : false,
               "setterDocumentation" : "/**\n@param member */",
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "String",
+                "variableDeclarationType" : "AssetHierarchy",
                 "variableName" : "member",
-                "variableType" : "String",
+                "variableType" : "AssetHierarchy",
                 "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
-              "simple" : true,
+              "simple" : false,
               "unmarshallingType" : null,
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "String",
+                "variableDeclarationType" : "AssetHierarchy",
                 "variableName" : "member",
-                "variableType" : "String",
+                "variableType" : "AssetHierarchy",
                 "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "String",
+            "memberType" : "AssetHierarchy",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
-            "simple" : true,
-            "simpleType" : "String",
-            "templateImplType" : "java.util.ArrayList<String>",
-            "templateType" : "java.util.List<String>"
+            "simple" : false,
+            "simpleType" : "AssetHierarchy",
+            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+            "templateType" : "java.util.List<AssetHierarchy>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "AssetIds",
+          "name" : "Hierarchies",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.*/",
-          "setterMethodName" : "setAssetIds",
+          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "setterMethodName" : "setHierarchies",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<String>",
-            "variableName" : "assetIds",
-            "variableType" : "java.util.List<String>",
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "hierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
             "documentation" : "",
-            "simpleType" : "List<String>",
-            "variableSetterType" : "java.util.Collection<String>"
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<String>",
-            "variableName" : "assetIds",
-            "variableType" : "java.util.List<String>",
-            "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
-            "simpleType" : "List<String>",
-            "variableSetterType" : "java.util.Collection<String>"
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "hierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
+            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
           },
           "xmlNameSpaceUri" : null
         },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -16636,14 +16122,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -16652,14 +16138,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -16669,31 +16155,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The ID of the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ProjectId" : {
-          "c2jName" : "projectId",
-          "c2jShape" : "ID",
+        "LastUpdateDate" : {
+          "c2jName" : "lastUpdateDate",
+          "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectId",
-          "getterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@return The ID of the project from which to disassociate the assets.*/",
-          "getterMethodName" : "getProjectId",
+          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getLastUpdateDate",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.Date",
             "documentation" : null
           },
           "http" : {
@@ -16704,14 +16190,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "projectId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "lastUpdateDate",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectId",
-            "uri" : true
+            "unmarshallLocationName" : "lastUpdateDate",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -16720,245 +16206,120 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ProjectId",
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "LastUpdateDate",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.*/",
-          "setterMethodName" : "setProjectId",
+          "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+          "setterMethodName" : "setLastUpdateDate",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "projectId", "assetIds" ],
-      "shapeName" : "BatchDisassociateProjectAssetsRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchDisassociateProjectAssetsRequest",
-        "variableName" : "batchDisassociateProjectAssetsRequest",
-        "variableType" : "BatchDisassociateProjectAssetsRequest",
-        "documentation" : null,
-        "simpleType" : "BatchDisassociateProjectAssetsRequest",
-        "variableSetterType" : "BatchDisassociateProjectAssetsRequest"
-      },
-      "wrapper" : false
-    },
-    "BatchDisassociateProjectAssetsResult" : {
-      "c2jName" : "BatchDisassociateProjectAssetsResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchDisassociateProjectAssetsResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "errors",
-        "c2jShape" : "BatchDisassociateProjectAssetsErrors",
-        "deprecated" : false,
-        "documentation" : "<p>A list of associated error information, if any.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withErrors",
-        "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
-        "getterMethodName" : "getErrors",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetErrorDetails>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errors",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "errors",
-          "uri" : false
         },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetErrorDetails",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetErrorDetails",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetErrorDetails",
-              "variableName" : "member",
-              "variableType" : "AssetErrorDetails",
-              "documentation" : "",
-              "simpleType" : "AssetErrorDetails",
-              "variableSetterType" : "AssetErrorDetails"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetErrorDetails",
-              "variableName" : "member",
-              "variableType" : "AssetErrorDetails",
-              "documentation" : "",
-              "simpleType" : "AssetErrorDetails",
-              "variableSetterType" : "AssetErrorDetails"
-            },
-            "xmlNameSpaceUri" : null
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+          "getterMethodName" : "getName",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
           },
-          "memberLocationName" : null,
-          "memberType" : "AssetErrorDetails",
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "name",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "name",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
           "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetErrorDetails",
-          "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
-          "templateType" : "java.util.List<AssetErrorDetails>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Errors",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
-        "setterMethodName" : "setErrors",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<AssetErrorDetails>",
-          "documentation" : "",
-          "simpleType" : "List<AssetErrorDetails>",
-          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<AssetErrorDetails>",
-          "documentation" : "<p>A list of associated error information, if any.</p>",
-          "simpleType" : "List<AssetErrorDetails>",
-          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Name",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+          "setterMethodName" : "setName",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "name",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Errors" : {
-          "c2jName" : "errors",
-          "c2jShape" : "BatchDisassociateProjectAssetsErrors",
+        "Status" : {
+          "c2jName" : "status",
+          "c2jShape" : "AssetStatus",
           "deprecated" : false,
-          "documentation" : "<p>A list of associated error information, if any.</p>",
+          "documentation" : "<p>The current status of the asset.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withErrors",
-          "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
-          "getterMethodName" : "getErrors",
+          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withStatus",
+          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+          "getterMethodName" : "getStatus",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetErrorDetails>",
+            "returnType" : "AssetStatus",
             "documentation" : null
           },
           "http" : {
@@ -16971,141 +16332,57 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errors",
+            "marshallLocationName" : "status",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "errors",
+            "unmarshallLocationName" : "status",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetErrorDetails",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetErrorDetails",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetErrorDetails",
-                "variableName" : "member",
-                "variableType" : "AssetErrorDetails",
-                "documentation" : "",
-                "simpleType" : "AssetErrorDetails",
-                "variableSetterType" : "AssetErrorDetails"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetErrorDetails",
-                "variableName" : "member",
-                "variableType" : "AssetErrorDetails",
-                "documentation" : "",
-                "simpleType" : "AssetErrorDetails",
-                "variableSetterType" : "AssetErrorDetails"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetErrorDetails",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetErrorDetails",
-            "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
-            "templateType" : "java.util.List<AssetErrorDetails>"
-          },
+          "list" : false,
+          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Errors",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Status",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
-          "setterMethodName" : "setErrors",
+          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+          "setterMethodName" : "setStatus",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<AssetErrorDetails>",
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "status",
+            "variableType" : "AssetStatus",
             "documentation" : "",
-            "simpleType" : "List<AssetErrorDetails>",
-            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<AssetErrorDetails>",
-            "documentation" : "<p>A list of associated error information, if any.</p>",
-            "simpleType" : "List<AssetErrorDetails>",
-            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "status",
+            "variableType" : "AssetStatus",
+            "documentation" : "<p>The current status of the asset.</p>",
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "BatchDisassociateProjectAssetsResult",
+      "required" : [ "id", "arn", "name", "assetModelId", "creationDate", "lastUpdateDate", "status", "hierarchies" ],
+      "shapeName" : "AssetSummary",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -17114,17 +16391,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "BatchDisassociateProjectAssetsResult",
-        "variableName" : "batchDisassociateProjectAssetsResult",
-        "variableType" : "BatchDisassociateProjectAssetsResult",
+        "variableDeclarationType" : "AssetSummary",
+        "variableName" : "assetSummary",
+        "variableType" : "AssetSummary",
         "documentation" : null,
-        "simpleType" : "BatchDisassociateProjectAssetsResult",
-        "variableSetterType" : "BatchDisassociateProjectAssetsResult"
+        "simpleType" : "AssetSummary",
+        "variableSetterType" : "AssetSummary"
       },
       "wrapper" : false
     },
-    "BatchPutAssetPropertyError" : {
-      "c2jName" : "BatchPutAssetPropertyError",
+    "AssociateAssetsRequest" : {
+      "c2jName" : "AssociateAssetsRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -17132,28 +16409,35 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains error information from updating a batch of asset property values.</p>",
+      "documentation" : "",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.BatchPutAssetPropertyError",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.AssociateAssetsRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : null,
+      "marshaller" : {
+        "action" : "AssociateAssets",
+        "locationName" : null,
+        "requestUri" : "/assets/{assetId}/associate",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
       "members" : [ {
-        "c2jName" : "errorCode",
-        "c2jShape" : "BatchPutAssetPropertyValueErrorCode",
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The error code.</p>",
+        "documentation" : "<p>The ID of the parent asset.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "BatchPutAssetPropertyValueErrorCode",
-        "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
-        "fluentSetterMethodName" : "withErrorCode",
-        "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
-        "getterMethodName" : "getErrorCode",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@return The ID of the parent asset.*/",
+        "getterMethodName" : "getAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -17166,14 +16450,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errorCode",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "errorCode",
-          "uri" : false
+          "unmarshallLocationName" : "assetId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -17184,14 +16468,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ErrorCode",
+        "name" : "AssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
-        "setterMethodName" : "setErrorCode",
+        "setterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.*/",
+        "setterMethodName" : "setAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "errorCode",
+          "variableName" : "assetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -17201,28 +16485,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "errorCode",
+          "variableName" : "assetId",
           "variableType" : "String",
-          "documentation" : "<p>The error code.</p>",
+          "documentation" : "<p>The ID of the parent asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "errorMessage",
-        "c2jShape" : "ErrorMessage",
+        "c2jName" : "hierarchyId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The associated error message.</p>",
+        "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withErrorMessage",
-        "getterDocumentation" : "/**<p>The associated error message.</p>\n@return The associated error message.*/",
-        "getterMethodName" : "getErrorMessage",
+        "fluentSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withHierarchyId",
+        "getterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getHierarchyId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -17237,11 +16521,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errorMessage",
+          "marshallLocationName" : "hierarchyId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "errorMessage",
+          "unmarshallLocationName" : "hierarchyId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -17253,14 +16537,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ErrorMessage",
+        "name" : "HierarchyId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.*/",
-        "setterMethodName" : "setErrorMessage",
+        "setterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setHierarchyId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "errorMessage",
+          "variableName" : "hierarchyId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -17270,30 +16554,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "errorMessage",
+          "variableName" : "hierarchyId",
           "variableType" : "String",
-          "documentation" : "<p>The associated error message.</p>",
+          "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "timestamps",
-        "c2jShape" : "Timestamps",
+        "c2jName" : "childAssetId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>A list of timestamps for each error, if any.</p>",
+        "documentation" : "<p>The ID of the child asset to be associated.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTimestamps",
-        "getterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@return A list of timestamps for each error, if any.*/",
-        "getterMethodName" : "getTimestamps",
-        "getterModel" : {
-          "returnType" : "java.util.List<TimeInNanos>",
+        "fluentSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withChildAssetId",
+        "getterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@return The ID of the child asset to be associated.*/",
+        "getterMethodName" : "getChildAssetId",
+        "getterModel" : {
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -17306,147 +16590,202 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "timestamps",
+          "marshallLocationName" : "childAssetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "timestamps",
+          "unmarshallLocationName" : "childAssetId",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "TimeInNanos",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "TimeInNanos",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "TimeInNanos",
-              "variableName" : "member",
-              "variableType" : "TimeInNanos",
-              "documentation" : "",
-              "simpleType" : "TimeInNanos",
-              "variableSetterType" : "TimeInNanos"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "TimeInNanos",
-              "variableName" : "member",
-              "variableType" : "TimeInNanos",
-              "documentation" : "",
-              "simpleType" : "TimeInNanos",
-              "variableSetterType" : "TimeInNanos"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "TimeInNanos",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "TimeInNanos",
-          "templateImplType" : "java.util.ArrayList<TimeInNanos>",
-          "templateType" : "java.util.List<TimeInNanos>"
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ChildAssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.*/",
+        "setterMethodName" : "setChildAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "childAssetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "childAssetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the child asset to be associated.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
+        "deprecated" : false,
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "clientToken",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "clientToken",
+          "uri" : false
         },
+        "idempotencyToken" : true,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Timestamps",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.*/",
-        "setterMethodName" : "setTimestamps",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<TimeInNanos>",
-          "variableName" : "timestamps",
-          "variableType" : "java.util.List<TimeInNanos>",
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "List<TimeInNanos>",
-          "variableSetterType" : "java.util.Collection<TimeInNanos>"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTimestamps(java.util.Collection)} or {@link #withTimestamps(java.util.Collection)} if you want to override the existing values.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<TimeInNanos>",
-          "variableName" : "timestamps",
-          "variableType" : "java.util.List<TimeInNanos>",
-          "documentation" : "<p>A list of timestamps for each error, if any.</p>",
-          "simpleType" : "List<TimeInNanos>",
-          "variableSetterType" : "java.util.Collection<TimeInNanos>"
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ErrorCode" : {
-          "c2jName" : "errorCode",
-          "c2jShape" : "BatchPutAssetPropertyValueErrorCode",
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The error code.</p>",
+          "documentation" : "<p>The ID of the parent asset.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "BatchPutAssetPropertyValueErrorCode",
-          "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
-          "fluentSetterMethodName" : "withErrorCode",
-          "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
-          "getterMethodName" : "getErrorCode",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@return The ID of the parent asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the parent asset.</p>\n@param assetId The ID of the parent asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the parent asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ChildAssetId" : {
+          "c2jName" : "childAssetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the child asset to be associated.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withChildAssetId",
+          "getterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@return The ID of the child asset to be associated.*/",
+          "getterMethodName" : "getChildAssetId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -17461,11 +16800,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errorCode",
+            "marshallLocationName" : "childAssetId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "errorCode",
+            "unmarshallLocationName" : "childAssetId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -17477,14 +16816,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ErrorCode",
+          "name" : "ChildAssetId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
-          "setterMethodName" : "setErrorCode",
+          "setterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.*/",
+          "setterMethodName" : "setChildAssetId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "errorCode",
+            "variableName" : "childAssetId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -17494,29 +16833,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the child asset to be associated.</p>\n@param childAssetId The ID of the child asset to be associated.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "errorCode",
+            "variableName" : "childAssetId",
             "variableType" : "String",
-            "documentation" : "<p>The error code.</p>",
+            "documentation" : "<p>The ID of the child asset to be associated.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ErrorMessage" : {
-          "c2jName" : "errorMessage",
-          "c2jShape" : "ErrorMessage",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The associated error message.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withErrorMessage",
-          "getterDocumentation" : "/**<p>The associated error message.</p>\n@return The associated error message.*/",
-          "getterMethodName" : "getErrorMessage",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -17531,14 +16870,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errorMessage",
+            "marshallLocationName" : "clientToken",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "errorMessage",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -17547,14 +16886,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ErrorMessage",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.*/",
-          "setterMethodName" : "setErrorMessage",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "errorMessage",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -17564,31 +16903,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "errorMessage",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The associated error message.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Timestamps" : {
-          "c2jName" : "timestamps",
-          "c2jShape" : "Timestamps",
+        "HierarchyId" : {
+          "c2jName" : "hierarchyId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A list of timestamps for each error, if any.</p>",
+          "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTimestamps",
-          "getterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@return A list of timestamps for each error, if any.*/",
-          "getterMethodName" : "getTimestamps",
+          "fluentSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withHierarchyId",
+          "getterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getHierarchyId",
           "getterModel" : {
-            "returnType" : "java.util.List<TimeInNanos>",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -17601,160 +16940,73 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "timestamps",
+            "marshallLocationName" : "hierarchyId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "timestamps",
+            "unmarshallLocationName" : "hierarchyId",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "TimeInNanos",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "TimeInNanos",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "TimeInNanos",
-                "variableName" : "member",
-                "variableType" : "TimeInNanos",
-                "documentation" : "",
-                "simpleType" : "TimeInNanos",
-                "variableSetterType" : "TimeInNanos"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "TimeInNanos",
-                "variableName" : "member",
-                "variableType" : "TimeInNanos",
-                "documentation" : "",
-                "simpleType" : "TimeInNanos",
-                "variableSetterType" : "TimeInNanos"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "TimeInNanos",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "TimeInNanos",
-            "templateImplType" : "java.util.ArrayList<TimeInNanos>",
-            "templateType" : "java.util.List<TimeInNanos>"
-          },
+          "list" : false,
+          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Timestamps",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "HierarchyId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.*/",
-          "setterMethodName" : "setTimestamps",
+          "setterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setHierarchyId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<TimeInNanos>",
-            "variableName" : "timestamps",
-            "variableType" : "java.util.List<TimeInNanos>",
+            "variableDeclarationType" : "String",
+            "variableName" : "hierarchyId",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "List<TimeInNanos>",
-            "variableSetterType" : "java.util.Collection<TimeInNanos>"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTimestamps(java.util.Collection)} or {@link #withTimestamps(java.util.Collection)} if you want to override the existing values.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param hierarchyId The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<TimeInNanos>",
-            "variableName" : "timestamps",
-            "variableType" : "java.util.List<TimeInNanos>",
-            "documentation" : "<p>A list of timestamps for each error, if any.</p>",
-            "simpleType" : "List<TimeInNanos>",
-            "variableSetterType" : "java.util.Collection<TimeInNanos>"
+            "variableDeclarationType" : "String",
+            "variableName" : "hierarchyId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings of assets to be formed that all come from the same asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "errorCode", "errorMessage", "timestamps" ],
-      "shapeName" : "BatchPutAssetPropertyError",
+      "required" : [ "assetId", "hierarchyId", "childAssetId" ],
+      "shapeName" : "AssociateAssetsRequest",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "BatchPutAssetPropertyError",
-        "variableName" : "batchPutAssetPropertyError",
-        "variableType" : "BatchPutAssetPropertyError",
+        "variableDeclarationType" : "AssociateAssetsRequest",
+        "variableName" : "associateAssetsRequest",
+        "variableType" : "AssociateAssetsRequest",
         "documentation" : null,
-        "simpleType" : "BatchPutAssetPropertyError",
-        "variableSetterType" : "BatchPutAssetPropertyError"
+        "simpleType" : "AssociateAssetsRequest",
+        "variableSetterType" : "AssociateAssetsRequest"
       },
       "wrapper" : false
     },
-    "BatchPutAssetPropertyErrorEntry" : {
-      "c2jName" : "BatchPutAssetPropertyErrorEntry",
+    "AssociateAssetsResult" : {
+      "c2jName" : "AssociateAssetsResult",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -17762,11 +17014,55 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains error information for asset property value entries that are associated with the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html\">BatchPutAssetPropertyValue</a> API.</p>",
+      "documentation" : null,
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.BatchPutAssetPropertyErrorEntry",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.AssociateAssetsResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AssociateAssetsResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AssociateAssetsResult",
+        "variableName" : "associateAssetsResult",
+        "variableType" : "AssociateAssetsResult",
+        "documentation" : null,
+        "simpleType" : "AssociateAssetsResult",
+        "variableSetterType" : "AssociateAssetsResult"
+      },
+      "wrapper" : false
+    },
+    "AssociatedAssetsSummary" : {
+      "c2jName" : "AssociatedAssetsSummary",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains a summary of an associated asset.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.AssociatedAssetsSummary",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -17774,16 +17070,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "entryId",
-        "c2jShape" : "EntryId",
+        "c2jName" : "id",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the failed entry.</p>",
+        "documentation" : "<p>The ID of the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withEntryId",
-        "getterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@return The ID of the failed entry.*/",
-        "getterMethodName" : "getEntryId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -17798,11 +17094,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "entryId",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "entryId",
+          "unmarshallLocationName" : "id",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -17814,14 +17110,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "EntryId",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.*/",
-        "setterMethodName" : "setEntryId",
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "entryId",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -17831,30 +17127,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "entryId",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the failed entry.</p>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "errors",
-        "c2jShape" : "BatchPutAssetPropertyErrors",
+        "c2jName" : "arn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The list of update property value errors.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withErrors",
-        "getterDocumentation" : "/**<p>The list of update property value errors.</p>\n@return The list of update property value errors.*/",
-        "getterMethodName" : "getErrors",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "getterMethodName" : "getArn",
         "getterModel" : {
-          "returnType" : "java.util.List<BatchPutAssetPropertyError>",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -17867,494 +17163,408 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errors",
+          "marshallLocationName" : "arn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "errors",
+          "unmarshallLocationName" : "arn",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "BatchPutAssetPropertyError",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "BatchPutAssetPropertyError",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "BatchPutAssetPropertyError",
-              "variableName" : "member",
-              "variableType" : "BatchPutAssetPropertyError",
-              "documentation" : "",
-              "simpleType" : "BatchPutAssetPropertyError",
-              "variableSetterType" : "BatchPutAssetPropertyError"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "BatchPutAssetPropertyError",
-              "variableName" : "member",
-              "variableType" : "BatchPutAssetPropertyError",
-              "documentation" : "",
-              "simpleType" : "BatchPutAssetPropertyError",
-              "variableSetterType" : "BatchPutAssetPropertyError"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "BatchPutAssetPropertyError",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "BatchPutAssetPropertyError",
-          "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyError>",
-          "templateType" : "java.util.List<BatchPutAssetPropertyError>"
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Arn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "setterMethodName" : "setArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "name",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The name of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+        "getterMethodName" : "getName",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "name",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "name",
+          "uri" : false
         },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "Errors",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.*/",
-        "setterMethodName" : "setErrors",
+        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<BatchPutAssetPropertyError>",
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "List<BatchPutAssetPropertyError>",
-          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
-          "variableName" : "errors",
-          "variableType" : "java.util.List<BatchPutAssetPropertyError>",
-          "documentation" : "<p>The list of update property value errors.</p>",
-          "simpleType" : "List<BatchPutAssetPropertyError>",
-          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
+          "variableDeclarationType" : "String",
+          "variableName" : "name",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "EntryId" : {
-          "c2jName" : "entryId",
-          "c2jShape" : "EntryId",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the failed entry.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withEntryId",
-          "getterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@return The ID of the failed entry.*/",
-          "getterMethodName" : "getEntryId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "entryId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "entryId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "EntryId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.*/",
-          "setterMethodName" : "setEntryId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "entryId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "entryId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the failed entry.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@return The ID of the asset model used to create the asset.*/",
+        "getterMethodName" : "getAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "Errors" : {
-          "c2jName" : "errors",
-          "c2jShape" : "BatchPutAssetPropertyErrors",
-          "deprecated" : false,
-          "documentation" : "<p>The list of update property value errors.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withErrors",
-          "getterDocumentation" : "/**<p>The list of update property value errors.</p>\n@return The list of update property value errors.*/",
-          "getterMethodName" : "getErrors",
-          "getterModel" : {
-            "returnType" : "java.util.List<BatchPutAssetPropertyError>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errors",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "errors",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "BatchPutAssetPropertyError",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "BatchPutAssetPropertyError",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "BatchPutAssetPropertyError",
-                "variableName" : "member",
-                "variableType" : "BatchPutAssetPropertyError",
-                "documentation" : "",
-                "simpleType" : "BatchPutAssetPropertyError",
-                "variableSetterType" : "BatchPutAssetPropertyError"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "BatchPutAssetPropertyError",
-                "variableName" : "member",
-                "variableType" : "BatchPutAssetPropertyError",
-                "documentation" : "",
-                "simpleType" : "BatchPutAssetPropertyError",
-                "variableSetterType" : "BatchPutAssetPropertyError"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "BatchPutAssetPropertyError",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "BatchPutAssetPropertyError",
-            "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyError>",
-            "templateType" : "java.util.List<BatchPutAssetPropertyError>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Errors",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.*/",
-          "setterMethodName" : "setErrors",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<BatchPutAssetPropertyError>",
-            "documentation" : "",
-            "simpleType" : "List<BatchPutAssetPropertyError>",
-            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
-            "variableName" : "errors",
-            "variableType" : "java.util.List<BatchPutAssetPropertyError>",
-            "documentation" : "<p>The list of update property value errors.</p>",
-            "simpleType" : "List<BatchPutAssetPropertyError>",
-            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "entryId", "errors" ],
-      "shapeName" : "BatchPutAssetPropertyErrorEntry",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
-        "variableName" : "batchPutAssetPropertyErrorEntry",
-        "variableType" : "BatchPutAssetPropertyErrorEntry",
-        "documentation" : null,
-        "simpleType" : "BatchPutAssetPropertyErrorEntry",
-        "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
-      },
-      "wrapper" : false
-    },
-    "BatchPutAssetPropertyValueErrorCode" : {
-      "c2jName" : "BatchPutAssetPropertyValueErrorCode",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "ResourceNotFoundException",
-        "value" : "ResourceNotFoundException"
-      }, {
-        "name" : "InvalidRequestException",
-        "value" : "InvalidRequestException"
-      }, {
-        "name" : "InternalFailureException",
-        "value" : "InternalFailureException"
-      }, {
-        "name" : "ServiceUnavailableException",
-        "value" : "ServiceUnavailableException"
-      }, {
-        "name" : "ThrottlingException",
-        "value" : "ThrottlingException"
-      }, {
-        "name" : "LimitExceededException",
-        "value" : "LimitExceededException"
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.*/",
+        "setterMethodName" : "setAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
       }, {
-        "name" : "ConflictingOperationException",
-        "value" : "ConflictingOperationException"
+        "c2jName" : "creationDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withCreationDate",
+        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+        "getterMethodName" : "getCreationDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "creationDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "creationDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "CreationDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+        "setterMethodName" : "setCreationDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
       }, {
-        "name" : "TimestampOutOfRangeException",
-        "value" : "TimestampOutOfRangeException"
+        "c2jName" : "lastUpdateDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getLastUpdateDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "lastUpdateDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "lastUpdateDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "LastUpdateDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setLastUpdateDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "lastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "lastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
       }, {
-        "name" : "AccessDeniedException",
-        "value" : "AccessDeniedException"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.BatchPutAssetPropertyValueErrorCode",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "BatchPutAssetPropertyValueErrorCode",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchPutAssetPropertyValueErrorCode",
-        "variableName" : "batchPutAssetPropertyValueErrorCode",
-        "variableType" : "BatchPutAssetPropertyValueErrorCode",
-        "documentation" : null,
-        "simpleType" : "BatchPutAssetPropertyValueErrorCode",
-        "variableSetterType" : "BatchPutAssetPropertyValueErrorCode"
-      },
-      "wrapper" : false
-    },
-    "BatchPutAssetPropertyValueRequest" : {
-      "c2jName" : "BatchPutAssetPropertyValueRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchPutAssetPropertyValueRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "BatchPutAssetPropertyValue",
-        "locationName" : null,
-        "requestUri" : "/properties",
-        "target" : null,
-        "verb" : "POST",
+        "c2jName" : "status",
+        "c2jShape" : "AssetStatus",
+        "deprecated" : false,
+        "documentation" : "<p>The current status of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withStatus",
+        "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+        "getterMethodName" : "getStatus",
+        "getterModel" : {
+          "returnType" : "AssetStatus",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "status",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "status",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Status",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+        "setterMethodName" : "setStatus",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "status",
+          "variableType" : "AssetStatus",
+          "documentation" : "",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "status",
+          "variableType" : "AssetStatus",
+          "documentation" : "<p>The current status of the asset.</p>",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
+        },
         "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "entries",
-        "c2jShape" : "PutAssetPropertyValueEntries",
+      }, {
+        "c2jName" : "hierarchies",
+        "c2jShape" : "AssetHierarchies",
         "deprecated" : false,
-        "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withEntries",
-        "getterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@return The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
-        "getterMethodName" : "getEntries",
+        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withHierarchies",
+        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "getterMethodName" : "getHierarchies",
         "getterModel" : {
-          "returnType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "returnType" : "java.util.List<AssetHierarchy>",
           "documentation" : null
         },
         "http" : {
@@ -18367,11 +17577,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "entries",
+          "marshallLocationName" : "hierarchies",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "entries",
+          "unmarshallLocationName" : "hierarchies",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -18383,7 +17593,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "PutAssetPropertyValueEntry",
+            "c2jShape" : "AssetHierarchy",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -18393,7 +17603,7 @@
             "getterDocumentation" : "/**\n@return */",
             "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "PutAssetPropertyValueEntry",
+              "returnType" : "AssetHierarchy",
               "documentation" : null
             },
             "http" : {
@@ -18428,12 +17638,12 @@
             "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "PutAssetPropertyValueEntry",
+              "variableDeclarationType" : "AssetHierarchy",
               "variableName" : "member",
-              "variableType" : "PutAssetPropertyValueEntry",
+              "variableType" : "AssetHierarchy",
               "documentation" : "",
-              "simpleType" : "PutAssetPropertyValueEntry",
-              "variableSetterType" : "PutAssetPropertyValueEntry"
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
@@ -18442,74 +17652,74 @@
             "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "PutAssetPropertyValueEntry",
+              "variableDeclarationType" : "AssetHierarchy",
               "variableName" : "member",
-              "variableType" : "PutAssetPropertyValueEntry",
+              "variableType" : "AssetHierarchy",
               "documentation" : "",
-              "simpleType" : "PutAssetPropertyValueEntry",
-              "variableSetterType" : "PutAssetPropertyValueEntry"
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
             },
             "xmlNameSpaceUri" : null
           },
           "memberLocationName" : null,
-          "memberType" : "PutAssetPropertyValueEntry",
+          "memberType" : "AssetHierarchy",
           "map" : false,
           "marshallNonAutoConstructedEmptyLists" : false,
           "memberAdditionalMarshallingPath" : null,
           "memberAdditionalUnmarshallingPath" : null,
           "sendEmptyQueryString" : false,
           "simple" : false,
-          "simpleType" : "PutAssetPropertyValueEntry",
-          "templateImplType" : "java.util.ArrayList<PutAssetPropertyValueEntry>",
-          "templateType" : "java.util.List<PutAssetPropertyValueEntry>"
+          "simpleType" : "AssetHierarchy",
+          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+          "templateType" : "java.util.List<AssetHierarchy>"
         },
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "List",
         "marshallingType" : "LIST",
-        "name" : "Entries",
+        "name" : "Hierarchies",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
-        "setterMethodName" : "setEntries",
+        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "setterMethodName" : "setHierarchies",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
-          "variableName" : "entries",
-          "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "hierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
           "documentation" : "",
-          "simpleType" : "List<PutAssetPropertyValueEntry>",
-          "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEntries(java.util.Collection)} or {@link #withEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
-          "variableName" : "entries",
-          "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
-          "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
-          "simpleType" : "List<PutAssetPropertyValueEntry>",
-          "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "hierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Entries" : {
-          "c2jName" : "entries",
-          "c2jShape" : "PutAssetPropertyValueEntries",
+        "Arn" : {
+          "c2jName" : "arn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withEntries",
-          "getterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@return The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
-          "getterMethodName" : "getEntries",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "getterMethodName" : "getArn",
           "getterModel" : {
-            "returnType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -18522,343 +17732,204 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "entries",
+            "marshallLocationName" : "arn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "entries",
+            "unmarshallLocationName" : "arn",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "PutAssetPropertyValueEntry",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "PutAssetPropertyValueEntry",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "PutAssetPropertyValueEntry",
-                "variableName" : "member",
-                "variableType" : "PutAssetPropertyValueEntry",
-                "documentation" : "",
-                "simpleType" : "PutAssetPropertyValueEntry",
-                "variableSetterType" : "PutAssetPropertyValueEntry"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "PutAssetPropertyValueEntry",
-                "variableName" : "member",
-                "variableType" : "PutAssetPropertyValueEntry",
-                "documentation" : "",
-                "simpleType" : "PutAssetPropertyValueEntry",
-                "variableSetterType" : "PutAssetPropertyValueEntry"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "PutAssetPropertyValueEntry",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "PutAssetPropertyValueEntry",
-            "templateImplType" : "java.util.ArrayList<PutAssetPropertyValueEntry>",
-            "templateType" : "java.util.List<PutAssetPropertyValueEntry>"
-          },
+          "list" : false,
+          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "Entries",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Arn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
-          "setterMethodName" : "setEntries",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "setterMethodName" : "setArn",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
-            "variableName" : "entries",
-            "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "variableDeclarationType" : "String",
+            "variableName" : "arn",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "List<PutAssetPropertyValueEntry>",
-            "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEntries(java.util.Collection)} or {@link #withEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param arn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
-            "variableName" : "entries",
-            "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
-            "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
-            "simpleType" : "List<PutAssetPropertyValueEntry>",
-            "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+            "variableDeclarationType" : "String",
+            "variableName" : "arn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "entries" ],
-      "shapeName" : "BatchPutAssetPropertyValueRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchPutAssetPropertyValueRequest",
-        "variableName" : "batchPutAssetPropertyValueRequest",
-        "variableType" : "BatchPutAssetPropertyValueRequest",
-        "documentation" : null,
-        "simpleType" : "BatchPutAssetPropertyValueRequest",
-        "variableSetterType" : "BatchPutAssetPropertyValueRequest"
-      },
-      "wrapper" : false
-    },
-    "BatchPutAssetPropertyValueResult" : {
-      "c2jName" : "BatchPutAssetPropertyValueResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchPutAssetPropertyValueResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "errorEntries",
-        "c2jShape" : "BatchPutAssetPropertyErrorEntries",
-        "deprecated" : false,
-        "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withErrorEntries",
-        "getterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@return A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
-        "getterMethodName" : "getErrorEntries",
-        "getterModel" : {
-          "returnType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "errorEntries",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "errorEntries",
-          "uri" : false
         },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "BatchPutAssetPropertyErrorEntry",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "BatchPutAssetPropertyErrorEntry",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
-              "variableName" : "member",
-              "variableType" : "BatchPutAssetPropertyErrorEntry",
-              "documentation" : "",
-              "simpleType" : "BatchPutAssetPropertyErrorEntry",
-              "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
-              "variableName" : "member",
-              "variableType" : "BatchPutAssetPropertyErrorEntry",
-              "documentation" : "",
-              "simpleType" : "BatchPutAssetPropertyErrorEntry",
-              "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
-            },
-            "xmlNameSpaceUri" : null
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@return The ID of the asset model used to create the asset.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
           },
-          "memberLocationName" : null,
-          "memberType" : "BatchPutAssetPropertyErrorEntry",
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
           "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "BatchPutAssetPropertyErrorEntry",
-          "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyErrorEntry>",
-          "templateType" : "java.util.List<BatchPutAssetPropertyErrorEntry>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "ErrorEntries",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
-        "setterMethodName" : "setErrorEntries",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-          "variableName" : "errorEntries",
-          "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-          "documentation" : "",
-          "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
-          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model used to create the asset.</p>\n@param assetModelId The ID of the asset model used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model used to create the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrorEntries(java.util.Collection)} or {@link #withErrorEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-          "variableName" : "errorEntries",
-          "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-          "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
-          "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
-          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+        "CreationDate" : {
+          "c2jName" : "creationDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withCreationDate",
+          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+          "getterMethodName" : "getCreationDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "creationDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "creationDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "CreationDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.*/",
+          "setterMethodName" : "setCreationDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param creationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "ErrorEntries" : {
-          "c2jName" : "errorEntries",
-          "c2jShape" : "BatchPutAssetPropertyErrorEntries",
+        "Hierarchies" : {
+          "c2jName" : "hierarchies",
+          "c2jShape" : "AssetHierarchies",
           "deprecated" : false,
-          "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withErrorEntries",
-          "getterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@return A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
-          "getterMethodName" : "getErrorEntries",
+          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withHierarchies",
+          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "getterMethodName" : "getHierarchies",
           "getterModel" : {
-            "returnType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "returnType" : "java.util.List<AssetHierarchy>",
             "documentation" : null
           },
           "http" : {
@@ -18871,11 +17942,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "errorEntries",
+            "marshallLocationName" : "hierarchies",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "errorEntries",
+            "unmarshallLocationName" : "hierarchies",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -18887,7 +17958,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "BatchPutAssetPropertyErrorEntry",
+              "c2jShape" : "AssetHierarchy",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -18897,7 +17968,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "BatchPutAssetPropertyErrorEntry",
+                "returnType" : "AssetHierarchy",
                 "documentation" : null
               },
               "http" : {
@@ -18932,12 +18003,12 @@
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+                "variableDeclarationType" : "AssetHierarchy",
                 "variableName" : "member",
-                "variableType" : "BatchPutAssetPropertyErrorEntry",
+                "variableType" : "AssetHierarchy",
                 "documentation" : "",
-                "simpleType" : "BatchPutAssetPropertyErrorEntry",
-                "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
@@ -18946,307 +18017,71 @@
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+                "variableDeclarationType" : "AssetHierarchy",
                 "variableName" : "member",
-                "variableType" : "BatchPutAssetPropertyErrorEntry",
+                "variableType" : "AssetHierarchy",
                 "documentation" : "",
-                "simpleType" : "BatchPutAssetPropertyErrorEntry",
-                "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "BatchPutAssetPropertyErrorEntry",
+            "memberType" : "AssetHierarchy",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
             "simple" : false,
-            "simpleType" : "BatchPutAssetPropertyErrorEntry",
-            "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyErrorEntry>",
-            "templateType" : "java.util.List<BatchPutAssetPropertyErrorEntry>"
+            "simpleType" : "AssetHierarchy",
+            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+            "templateType" : "java.util.List<AssetHierarchy>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "ErrorEntries",
+          "name" : "Hierarchies",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
-          "setterMethodName" : "setErrorEntries",
+          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "setterMethodName" : "setHierarchies",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-            "variableName" : "errorEntries",
-            "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "hierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
             "documentation" : "",
-            "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
-            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrorEntries(java.util.Collection)} or {@link #withErrorEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setHierarchies(java.util.Collection)} or {@link #withHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param hierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-            "variableName" : "errorEntries",
-            "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
-            "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
-            "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
-            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "errorEntries" ],
-      "shapeName" : "BatchPutAssetPropertyValueResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "BatchPutAssetPropertyValueResult",
-        "variableName" : "batchPutAssetPropertyValueResult",
-        "variableType" : "BatchPutAssetPropertyValueResult",
-        "documentation" : null,
-        "simpleType" : "BatchPutAssetPropertyValueResult",
-        "variableSetterType" : "BatchPutAssetPropertyValueResult"
-      },
-      "wrapper" : false
-    },
-    "CapabilitySyncStatus" : {
-      "c2jName" : "CapabilitySyncStatus",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "IN_SYNC",
-        "value" : "IN_SYNC"
-      }, {
-        "name" : "OUT_OF_SYNC",
-        "value" : "OUT_OF_SYNC"
-      }, {
-        "name" : "SYNC_FAILED",
-        "value" : "SYNC_FAILED"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.CapabilitySyncStatus",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "CapabilitySyncStatus",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CapabilitySyncStatus",
-        "variableName" : "capabilitySyncStatus",
-        "variableType" : "CapabilitySyncStatus",
-        "documentation" : null,
-        "simpleType" : "CapabilitySyncStatus",
-        "variableSetterType" : "CapabilitySyncStatus"
-      },
-      "wrapper" : false
-    },
-    "ConfigurationErrorDetails" : {
-      "c2jName" : "ConfigurationErrorDetails",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p/>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ConfigurationErrorDetails",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "code",
-        "c2jShape" : "ErrorCode",
-        "deprecated" : false,
-        "documentation" : "<p/>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "ErrorCode",
-        "fluentSetterDocumentation" : "/**<p/>\n@param code \n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
-        "fluentSetterMethodName" : "withCode",
-        "getterDocumentation" : "/**<p/>\n@return \n@see ErrorCode*/",
-        "getterMethodName" : "getCode",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "code",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "code",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Code",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p/>\n@param code \n@see ErrorCode*/",
-        "setterMethodName" : "setCode",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "code",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p/>\n@param code \n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "code",
-          "variableType" : "String",
-          "documentation" : "<p/>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "message",
-        "c2jShape" : "ErrorMessage",
-        "deprecated" : false,
-        "documentation" : "<p/>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p/>\n@param message \n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withMessage",
-        "getterDocumentation" : "/**<p/>\n@return */",
-        "getterMethodName" : "getMessage",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "message",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "message",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Message",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p/>\n@param message */",
-        "setterMethodName" : "setMessage",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "message",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p/>\n@param message \n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "message",
-          "variableType" : "String",
-          "documentation" : "<p/>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "hierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
+            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Code" : {
-          "c2jName" : "code",
-          "c2jShape" : "ErrorCode",
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p/>",
+          "documentation" : "<p>The ID of the asset.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "ErrorCode",
-          "fluentSetterDocumentation" : "/**<p/>\n@param code \n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
-          "fluentSetterMethodName" : "withCode",
-          "getterDocumentation" : "/**<p/>\n@return \n@see ErrorCode*/",
-          "getterMethodName" : "getCode",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -19261,11 +18096,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "code",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "code",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -19277,14 +18112,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Code",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p/>\n@param code \n@see ErrorCode*/",
-          "setterMethodName" : "setCode",
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "code",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -19294,29 +18129,99 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p/>\n@param code \n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param id The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "code",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p/>",
+            "documentation" : "<p>The ID of the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Message" : {
-          "c2jName" : "message",
-          "c2jShape" : "ErrorMessage",
+        "LastUpdateDate" : {
+          "c2jName" : "lastUpdateDate",
+          "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p/>",
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p/>\n@param message \n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withMessage",
-          "getterDocumentation" : "/**<p/>\n@return */",
-          "getterMethodName" : "getMessage",
+          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getLastUpdateDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "lastUpdateDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "lastUpdateDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "LastUpdateDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+          "setterMethodName" : "setLastUpdateDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+          "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -19331,11 +18236,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "message",
+            "marshallLocationName" : "name",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "message",
+            "unmarshallLocationName" : "name",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -19347,14 +18252,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Message",
+          "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p/>\n@param message */",
-          "setterMethodName" : "setMessage",
+          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.*/",
+          "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "message",
+            "variableName" : "name",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -19364,77 +18269,94 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p/>\n@param message \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param name The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "message",
+            "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p/>",
+            "documentation" : "<p>The name of the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        },
+        "Status" : {
+          "c2jName" : "status",
+          "c2jShape" : "AssetStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The current status of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withStatus",
+          "getterDocumentation" : "/**<p>The current status of the asset.</p>\n@return The current status of the asset.*/",
+          "getterMethodName" : "getStatus",
+          "getterModel" : {
+            "returnType" : "AssetStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "status",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "status",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Status",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.*/",
+          "setterMethodName" : "setStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "status",
+            "variableType" : "AssetStatus",
+            "documentation" : "",
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The current status of the asset.</p>\n@param status The current status of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "status",
+            "variableType" : "AssetStatus",
+            "documentation" : "<p>The current status of the asset.</p>",
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
+          },
+          "xmlNameSpaceUri" : null
         }
       },
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "code", "message" ],
-      "shapeName" : "ConfigurationErrorDetails",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "ConfigurationErrorDetails",
-        "variableName" : "configurationErrorDetails",
-        "variableType" : "ConfigurationErrorDetails",
-        "documentation" : null,
-        "simpleType" : "ConfigurationErrorDetails",
-        "variableSetterType" : "ConfigurationErrorDetails"
-      },
-      "wrapper" : false
-    },
-    "ConfigurationState" : {
-      "c2jName" : "ConfigurationState",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "ACTIVE",
-        "value" : "ACTIVE"
-      }, {
-        "name" : "UPDATE_IN_PROGRESS",
-        "value" : "UPDATE_IN_PROGRESS"
-      }, {
-        "name" : "UPDATE_FAILED",
-        "value" : "UPDATE_FAILED"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.ConfigurationState",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "ConfigurationState",
+      "required" : [ "id", "arn", "name", "assetModelId", "creationDate", "lastUpdateDate", "status", "hierarchies" ],
+      "shapeName" : "AssociatedAssetsSummary",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -19443,17 +18365,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ConfigurationState",
-        "variableName" : "configurationState",
-        "variableType" : "ConfigurationState",
+        "variableDeclarationType" : "AssociatedAssetsSummary",
+        "variableName" : "associatedAssetsSummary",
+        "variableType" : "AssociatedAssetsSummary",
         "documentation" : null,
-        "simpleType" : "ConfigurationState",
-        "variableSetterType" : "ConfigurationState"
+        "simpleType" : "AssociatedAssetsSummary",
+        "variableSetterType" : "AssociatedAssetsSummary"
       },
       "wrapper" : false
     },
-    "ConfigurationStatus" : {
-      "c2jName" : "ConfigurationStatus",
+    "Attribute" : {
+      "c2jName" : "Attribute",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -19461,11 +18383,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p/>",
+      "documentation" : "<p>Contains an asset attribute property. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#attributes\">Attributes</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ConfigurationStatus",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Attribute",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -19473,18 +18395,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "state",
-        "c2jShape" : "ConfigurationState",
+        "c2jName" : "defaultValue",
+        "c2jShape" : "DefaultValue",
         "deprecated" : false,
-        "documentation" : "<p/>",
+        "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "ConfigurationState",
-        "fluentSetterDocumentation" : "/**<p/>\n@param state \n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
-        "fluentSetterMethodName" : "withState",
-        "getterDocumentation" : "/**<p/>\n@return \n@see ConfigurationState*/",
-        "getterMethodName" : "getState",
-        "getterModel" : {
-          "returnType" : "String",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDefaultValue",
+        "getterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getDefaultValue",
+        "getterModel" : {
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -19497,11 +18419,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "state",
+          "marshallLocationName" : "defaultValue",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "state",
+          "unmarshallLocationName" : "defaultValue",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -19513,14 +18435,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "State",
+        "name" : "DefaultValue",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p/>\n@param state \n@see ConfigurationState*/",
-        "setterMethodName" : "setState",
+        "setterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setDefaultValue",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "state",
+          "variableName" : "defaultValue",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -19530,169 +18452,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p/>\n@param state \n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
+        "varargSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "state",
+          "variableName" : "defaultValue",
           "variableType" : "String",
-          "documentation" : "<p/>",
+          "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "error",
-        "c2jShape" : "ConfigurationErrorDetails",
-        "deprecated" : false,
-        "documentation" : "<p/>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p/>\n@param error \n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withError",
-        "getterDocumentation" : "/**<p/>\n@return */",
-        "getterMethodName" : "getError",
-        "getterModel" : {
-          "returnType" : "ConfigurationErrorDetails",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "error",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "error",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Error",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p/>\n@param error */",
-        "setterMethodName" : "setError",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "ConfigurationErrorDetails",
-          "variableName" : "error",
-          "variableType" : "ConfigurationErrorDetails",
-          "documentation" : "",
-          "simpleType" : "ConfigurationErrorDetails",
-          "variableSetterType" : "ConfigurationErrorDetails"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p/>\n@param error \n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "ConfigurationErrorDetails",
-          "variableName" : "error",
-          "variableType" : "ConfigurationErrorDetails",
-          "documentation" : "<p/>",
-          "simpleType" : "ConfigurationErrorDetails",
-          "variableSetterType" : "ConfigurationErrorDetails"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Error" : {
-          "c2jName" : "error",
-          "c2jShape" : "ConfigurationErrorDetails",
+        "DefaultValue" : {
+          "c2jName" : "defaultValue",
+          "c2jShape" : "DefaultValue",
           "deprecated" : false,
-          "documentation" : "<p/>",
+          "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p/>\n@param error \n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withError",
-          "getterDocumentation" : "/**<p/>\n@return */",
-          "getterMethodName" : "getError",
-          "getterModel" : {
-            "returnType" : "ConfigurationErrorDetails",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "error",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "error",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Error",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p/>\n@param error */",
-          "setterMethodName" : "setError",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "ConfigurationErrorDetails",
-            "variableName" : "error",
-            "variableType" : "ConfigurationErrorDetails",
-            "documentation" : "",
-            "simpleType" : "ConfigurationErrorDetails",
-            "variableSetterType" : "ConfigurationErrorDetails"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p/>\n@param error \n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "ConfigurationErrorDetails",
-            "variableName" : "error",
-            "variableType" : "ConfigurationErrorDetails",
-            "documentation" : "<p/>",
-            "simpleType" : "ConfigurationErrorDetails",
-            "variableSetterType" : "ConfigurationErrorDetails"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "State" : {
-          "c2jName" : "state",
-          "c2jShape" : "ConfigurationState",
-          "deprecated" : false,
-          "documentation" : "<p/>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "ConfigurationState",
-          "fluentSetterDocumentation" : "/**<p/>\n@param state \n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
-          "fluentSetterMethodName" : "withState",
-          "getterDocumentation" : "/**<p/>\n@return \n@see ConfigurationState*/",
-          "getterMethodName" : "getState",
+          "fluentSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDefaultValue",
+          "getterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getDefaultValue",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -19707,11 +18490,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "state",
+            "marshallLocationName" : "defaultValue",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "state",
+            "unmarshallLocationName" : "defaultValue",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -19723,14 +18506,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "State",
+          "name" : "DefaultValue",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p/>\n@param state \n@see ConfigurationState*/",
-          "setterMethodName" : "setState",
+          "setterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setDefaultValue",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "state",
+            "variableName" : "defaultValue",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -19740,13 +18523,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p/>\n@param state \n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
+          "varargSetterDocumentation" : "/**<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param defaultValue The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "state",
+            "variableName" : "defaultValue",
             "variableType" : "String",
-            "documentation" : "<p/>",
+            "documentation" : "<p>The default value of the asset model property attribute. All assets that you create from the asset model contain this attribute value. You can update an attribute's value after you create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -19756,8 +18539,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "state" ],
-      "shapeName" : "ConfigurationStatus",
+      "required" : null,
+      "shapeName" : "Attribute",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -19766,17 +18549,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ConfigurationStatus",
-        "variableName" : "configurationStatus",
-        "variableType" : "ConfigurationStatus",
+        "variableDeclarationType" : "Attribute",
+        "variableName" : "attribute",
+        "variableType" : "Attribute",
         "documentation" : null,
-        "simpleType" : "ConfigurationStatus",
-        "variableSetterType" : "ConfigurationStatus"
+        "simpleType" : "Attribute",
+        "variableSetterType" : "Attribute"
       },
       "wrapper" : false
     },
-    "ConflictingOperationException" : {
-      "c2jName" : "ConflictingOperationException",
+    "AuthMode" : {
+      "c2jName" : "AuthMode",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -19784,28 +18567,85 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>",
+      "documentation" : "",
       "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : "ConflictingOperationException",
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.ConflictingOperationException",
+      "enums" : [ {
+        "name" : "IAM",
+        "value" : "IAM"
+      }, {
+        "name" : "SSO",
+        "value" : "SSO"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.AuthMode",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "AuthMode",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "AuthMode",
+        "variableName" : "authMode",
+        "variableType" : "AuthMode",
+        "documentation" : null,
+        "simpleType" : "AuthMode",
+        "variableSetterType" : "AuthMode"
+      },
+      "wrapper" : false
+    },
+    "BatchAssociateProjectAssetsRequest" : {
+      "c2jName" : "BatchAssociateProjectAssetsRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchAssociateProjectAssetsRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "BatchAssociateProjectAssets",
+        "locationName" : null,
+        "requestUri" : "/projects/{projectId}/assets/associate",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
       "members" : [ {
-        "c2jName" : "resourceId",
-        "c2jShape" : "ResourceId",
+        "c2jName" : "projectId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+        "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withResourceId",
-        "getterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@return The ID of the resource that conflicts with this operation.*/",
-        "getterMethodName" : "getResourceId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectId",
+        "getterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@return The ID of the project to which to associate the assets.*/",
+        "getterMethodName" : "getProjectId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -19818,14 +18658,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "resourceId",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "projectId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "resourceId",
-          "uri" : false
+          "unmarshallLocationName" : "projectId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -19836,14 +18676,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ResourceId",
+        "name" : "ProjectId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.*/",
-        "setterMethodName" : "setResourceId",
+        "setterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.*/",
+        "setterMethodName" : "setProjectId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "resourceId",
+          "variableName" : "projectId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -19853,30 +18693,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "resourceId",
+          "variableName" : "projectId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+          "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "resourceArn",
-        "c2jShape" : "ResourceArn",
+        "c2jName" : "assetIds",
+        "c2jShape" : "IDs",
         "deprecated" : false,
-        "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+        "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withResourceArn",
-        "getterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@return The ARN of the resource that conflicts with this operation.*/",
-        "getterMethodName" : "getResourceArn",
+        "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetIds",
+        "getterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@return The IDs of the assets to be associated to the project.*/",
+        "getterMethodName" : "getAssetIds",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.List<String>",
           "documentation" : null
         },
         "http" : {
@@ -19889,30 +18729,183 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "resourceArn",
+          "marshallLocationName" : "assetIds",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "resourceArn",
+          "unmarshallLocationName" : "assetIds",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "ID",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "String",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "String",
+            "marshallingType" : "STRING",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "member",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : true,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "member",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "String",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : true,
+          "simpleType" : "String",
+          "templateImplType" : "java.util.ArrayList<String>",
+          "templateType" : "java.util.List<String>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetIds",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.*/",
+        "setterMethodName" : "setAssetIds",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<String>",
+          "variableName" : "assetIds",
+          "variableType" : "java.util.List<String>",
+          "documentation" : "",
+          "simpleType" : "List<String>",
+          "variableSetterType" : "java.util.Collection<String>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<String>",
+          "variableName" : "assetIds",
+          "variableType" : "java.util.List<String>",
+          "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
+          "simpleType" : "List<String>",
+          "variableSetterType" : "java.util.Collection<String>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
+        "deprecated" : false,
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "clientToken",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "clientToken",
+          "uri" : false
+        },
+        "idempotencyToken" : true,
+        "isBinary" : false,
+        "jsonValue" : false,
         "list" : false,
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ResourceArn",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.*/",
-        "setterMethodName" : "setResourceArn",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "resourceArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -19922,32 +18915,32 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "resourceArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ResourceArn" : {
-          "c2jName" : "resourceArn",
-          "c2jShape" : "ResourceArn",
+        "AssetIds" : {
+          "c2jName" : "assetIds",
+          "c2jShape" : "IDs",
           "deprecated" : false,
-          "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+          "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withResourceArn",
-          "getterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@return The ARN of the resource that conflicts with this operation.*/",
-          "getterMethodName" : "getResourceArn",
+          "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetIds",
+          "getterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@return The IDs of the assets to be associated to the project.*/",
+          "getterMethodName" : "getAssetIds",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.List<String>",
             "documentation" : null
           },
           "http" : {
@@ -19960,30 +18953,184 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "resourceArn",
+            "marshallLocationName" : "assetIds",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "resourceArn",
+            "unmarshallLocationName" : "assetIds",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "ID",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "member",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "member",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "String",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : true,
+            "simpleType" : "String",
+            "templateImplType" : "java.util.ArrayList<String>",
+            "templateType" : "java.util.List<String>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetIds",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n@param assetIds The IDs of the assets to be associated to the project.*/",
+          "setterMethodName" : "setAssetIds",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<String>",
+            "variableName" : "assetIds",
+            "variableType" : "java.util.List<String>",
+            "documentation" : "",
+            "simpleType" : "List<String>",
+            "variableSetterType" : "java.util.Collection<String>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The IDs of the assets to be associated to the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be associated to the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<String>",
+            "variableName" : "assetIds",
+            "variableType" : "java.util.List<String>",
+            "documentation" : "<p>The IDs of the assets to be associated to the project.</p>",
+            "simpleType" : "List<String>",
+            "variableSetterType" : "java.util.Collection<String>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
+          "deprecated" : false,
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "clientToken",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
+          },
+          "idempotencyToken" : true,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ResourceArn",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.*/",
-          "setterMethodName" : "setResourceArn",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "resourceArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -19993,29 +19140,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "resourceArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ResourceId" : {
-          "c2jName" : "resourceId",
-          "c2jShape" : "ResourceId",
+        "ProjectId" : {
+          "c2jName" : "projectId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+          "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withResourceId",
-          "getterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@return The ID of the resource that conflicts with this operation.*/",
-          "getterMethodName" : "getResourceId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectId",
+          "getterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@return The ID of the project to which to associate the assets.*/",
+          "getterMethodName" : "getProjectId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -20028,14 +19175,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "resourceId",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "projectId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "resourceId",
-            "uri" : false
+            "unmarshallLocationName" : "projectId",
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -20046,14 +19193,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ResourceId",
+          "name" : "ProjectId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.*/",
-          "setterMethodName" : "setResourceId",
+          "setterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.*/",
+          "setterMethodName" : "setProjectId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "resourceId",
+            "variableName" : "projectId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -20063,40 +19210,40 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the project to which to associate the assets.</p>\n@param projectId The ID of the project to which to associate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "resourceId",
+            "variableName" : "projectId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+            "documentation" : "<p>The ID of the project to which to associate the assets.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "message", "resourceId", "resourceArn" ],
-      "shapeName" : "ConflictingOperationException",
+      "required" : [ "projectId", "assetIds" ],
+      "shapeName" : "BatchAssociateProjectAssetsRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ConflictingOperationException",
-        "variableName" : "conflictingOperationException",
-        "variableType" : "ConflictingOperationException",
+        "variableDeclarationType" : "BatchAssociateProjectAssetsRequest",
+        "variableName" : "batchAssociateProjectAssetsRequest",
+        "variableType" : "BatchAssociateProjectAssetsRequest",
         "documentation" : null,
-        "simpleType" : "ConflictingOperationException",
-        "variableSetterType" : "ConflictingOperationException"
+        "simpleType" : "BatchAssociateProjectAssetsRequest",
+        "variableSetterType" : "BatchAssociateProjectAssetsRequest"
       },
       "wrapper" : false
     },
-    "CreateAccessPolicyRequest" : {
-      "c2jName" : "CreateAccessPolicyRequest",
+    "BatchAssociateProjectAssetsResult" : {
+      "c2jName" : "BatchAssociateProjectAssetsResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -20108,33 +19255,26 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAccessPolicyRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchAssociateProjectAssetsResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreateAccessPolicy",
-        "locationName" : null,
-        "requestUri" : "/access-policies",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "accessPolicyIdentity",
-        "c2jShape" : "Identity",
+        "c2jName" : "errors",
+        "c2jShape" : "BatchAssociateProjectAssetsErrors",
         "deprecated" : false,
-        "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
+        "documentation" : "<p>A list of associated error information, if any.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyIdentity",
-        "getterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@return The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
-        "getterMethodName" : "getAccessPolicyIdentity",
+        "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withErrors",
+        "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
+        "getterMethodName" : "getErrors",
         "getterModel" : {
-          "returnType" : "Identity",
+          "returnType" : "java.util.List<AssetErrorDetails>",
           "documentation" : null
         },
         "http" : {
@@ -20147,199 +19287,351 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyIdentity",
+          "marshallLocationName" : "errors",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyIdentity",
+          "unmarshallLocationName" : "errors",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AccessPolicyIdentity",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
-        "setterMethodName" : "setAccessPolicyIdentity",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Identity",
-          "variableName" : "accessPolicyIdentity",
-          "variableType" : "Identity",
-          "documentation" : "",
-          "simpleType" : "Identity",
-          "variableSetterType" : "Identity"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Identity",
-          "variableName" : "accessPolicyIdentity",
-          "variableType" : "Identity",
-          "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
-          "simpleType" : "Identity",
-          "variableSetterType" : "Identity"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "accessPolicyResource",
-        "c2jShape" : "Resource",
-        "deprecated" : false,
-        "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyResource",
-        "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@return The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
-        "getterMethodName" : "getAccessPolicyResource",
-        "getterModel" : {
-          "returnType" : "Resource",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyResource",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyResource",
-          "uri" : false
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetErrorDetails",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetErrorDetails",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetErrorDetails",
+              "variableName" : "member",
+              "variableType" : "AssetErrorDetails",
+              "documentation" : "",
+              "simpleType" : "AssetErrorDetails",
+              "variableSetterType" : "AssetErrorDetails"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetErrorDetails",
+              "variableName" : "member",
+              "variableType" : "AssetErrorDetails",
+              "documentation" : "",
+              "simpleType" : "AssetErrorDetails",
+              "variableSetterType" : "AssetErrorDetails"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetErrorDetails",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetErrorDetails",
+          "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
+          "templateType" : "java.util.List<AssetErrorDetails>"
         },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AccessPolicyResource",
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Errors",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
-        "setterMethodName" : "setAccessPolicyResource",
+        "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
+        "setterMethodName" : "setErrors",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Resource",
-          "variableName" : "accessPolicyResource",
-          "variableType" : "Resource",
+          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<AssetErrorDetails>",
           "documentation" : "",
-          "simpleType" : "Resource",
-          "variableSetterType" : "Resource"
+          "simpleType" : "List<AssetErrorDetails>",
+          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Resource",
-          "variableName" : "accessPolicyResource",
-          "variableType" : "Resource",
-          "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
-          "simpleType" : "Resource",
-          "variableSetterType" : "Resource"
+          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<AssetErrorDetails>",
+          "documentation" : "<p>A list of associated error information, if any.</p>",
+          "simpleType" : "List<AssetErrorDetails>",
+          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "accessPolicyPermission",
-        "c2jShape" : "Permission",
-        "deprecated" : false,
-        "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "Permission",
-        "fluentSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-        "fluentSetterMethodName" : "withAccessPolicyPermission",
-        "getterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-        "getterMethodName" : "getAccessPolicyPermission",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyPermission",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyPermission",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AccessPolicyPermission",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-        "setterMethodName" : "setAccessPolicyPermission",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyPermission",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyPermission",
-          "variableType" : "String",
-          "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
+      } ],
+      "membersAsMap" : {
+        "Errors" : {
+          "c2jName" : "errors",
+          "c2jShape" : "BatchAssociateProjectAssetsErrors",
+          "deprecated" : false,
+          "documentation" : "<p>A list of associated error information, if any.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withErrors",
+          "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
+          "getterMethodName" : "getErrors",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetErrorDetails>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "errors",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "errors",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetErrorDetails",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetErrorDetails",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetErrorDetails",
+                "variableName" : "member",
+                "variableType" : "AssetErrorDetails",
+                "documentation" : "",
+                "simpleType" : "AssetErrorDetails",
+                "variableSetterType" : "AssetErrorDetails"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetErrorDetails",
+                "variableName" : "member",
+                "variableType" : "AssetErrorDetails",
+                "documentation" : "",
+                "simpleType" : "AssetErrorDetails",
+                "variableSetterType" : "AssetErrorDetails"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetErrorDetails",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetErrorDetails",
+            "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
+            "templateType" : "java.util.List<AssetErrorDetails>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Errors",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
+          "setterMethodName" : "setErrors",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<AssetErrorDetails>",
+            "documentation" : "",
+            "simpleType" : "List<AssetErrorDetails>",
+            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<AssetErrorDetails>",
+            "documentation" : "<p>A list of associated error information, if any.</p>",
+            "simpleType" : "List<AssetErrorDetails>",
+            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "BatchAssociateProjectAssetsResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "BatchAssociateProjectAssetsResult",
+        "variableName" : "batchAssociateProjectAssetsResult",
+        "variableType" : "BatchAssociateProjectAssetsResult",
+        "documentation" : null,
+        "simpleType" : "BatchAssociateProjectAssetsResult",
+        "variableSetterType" : "BatchAssociateProjectAssetsResult"
+      },
+      "wrapper" : false
+    },
+    "BatchDisassociateProjectAssetsRequest" : {
+      "c2jName" : "BatchDisassociateProjectAssetsRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchDisassociateProjectAssetsRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "BatchDisassociateProjectAssets",
+        "locationName" : null,
+        "requestUri" : "/projects/{projectId}/assets/disassociate",
+        "target" : null,
+        "verb" : "POST",
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+      },
+      "members" : [ {
+        "c2jName" : "projectId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectId",
+        "getterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@return The ID of the project from which to disassociate the assets.*/",
+        "getterMethodName" : "getProjectId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -20352,16 +19644,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "projectId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
+          "unmarshallLocationName" : "projectId",
+          "uri" : true
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -20370,14 +19662,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "ProjectId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.*/",
+        "setterMethodName" : "setProjectId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "projectId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -20387,30 +19679,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "projectId",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "tags",
-        "c2jShape" : "TagMap",
+        "c2jName" : "assetIds",
+        "c2jShape" : "IDs",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getTags",
+        "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetIds",
+        "getterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@return The IDs of the assets to be disassociated from the project.*/",
+        "getterMethodName" : "getAssetIds",
         "getterModel" : {
-          "returnType" : "java.util.Map<String,String>",
+          "returnType" : "java.util.List<String>",
           "documentation" : null
         },
         "http" : {
@@ -20423,37 +19715,31 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "tags",
+          "marshallLocationName" : "assetIds",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "tags",
+          "unmarshallLocationName" : "assetIds",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : true,
-        "mapModel" : {
-          "implType" : "java.util.HashMap",
-          "interfaceType" : "java.util.Map",
-          "keyLocationName" : "key",
-          "keyModel" : null,
-          "keyType" : "String",
-          "valueLocationName" : "value",
-          "valueModel" : {
-            "c2jName" : "value",
-            "c2jShape" : "TagValue",
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "ID",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
             "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withValue",
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
             "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getValue",
+            "getterMethodName" : "getMember",
             "getterModel" : {
               "returnType" : "String",
               "documentation" : null
@@ -20468,11 +19754,11 @@
               "isStreaming" : false,
               "location" : null,
               "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "value",
+              "marshallLocationName" : "member",
               "queryString" : false,
               "requiresLength" : false,
               "statusCode" : false,
-              "unmarshallLocationName" : "value",
+              "unmarshallLocationName" : "member",
               "uri" : false
             },
             "idempotencyToken" : false,
@@ -20484,14 +19770,14 @@
             "mapModel" : null,
             "marshallingTargetClass" : "String",
             "marshallingType" : "STRING",
-            "name" : "Value",
+            "name" : "Member",
             "sensitive" : false,
-            "setterDocumentation" : "/**\n@param value */",
-            "setterMethodName" : "setValue",
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
               "variableDeclarationType" : "String",
-              "variableName" : "value",
+              "variableName" : "member",
               "variableType" : "String",
               "documentation" : "",
               "simpleType" : "String",
@@ -20501,11 +19787,11 @@
             "shouldFullyQualify" : false,
             "simple" : true,
             "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
               "variableDeclarationType" : "String",
-              "variableName" : "value",
+              "variableName" : "member",
               "variableType" : "String",
               "documentation" : "",
               "simpleType" : "String",
@@ -20513,59 +19799,134 @@
             },
             "xmlNameSpaceUri" : null
           },
-          "valueType" : "String",
-          "entryType" : "Map.Entry<String, String>",
-          "keySimple" : true,
-          "templateImplType" : "java.util.HashMap<String,String>",
-          "templateType" : "java.util.Map<String,String>",
-          "valueList" : false,
-          "valueSimple" : true
+          "memberLocationName" : null,
+          "memberType" : "String",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : true,
+          "simpleType" : "String",
+          "templateImplType" : "java.util.ArrayList<String>",
+          "templateType" : "java.util.List<String>"
         },
-        "marshallingTargetClass" : "Map",
-        "marshallingType" : "MAP",
-        "name" : "Tags",
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetIds",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setTags",
+        "setterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.*/",
+        "setterMethodName" : "setAssetIds",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
+          "variableDeclarationType" : "java.util.List<String>",
+          "variableName" : "assetIds",
+          "variableType" : "java.util.List<String>",
           "documentation" : "",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
+          "simpleType" : "List<String>",
+          "variableSetterType" : "java.util.Collection<String>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
+          "variableDeclarationType" : "java.util.List<String>",
+          "variableName" : "assetIds",
+          "variableType" : "java.util.List<String>",
+          "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
+          "simpleType" : "List<String>",
+          "variableSetterType" : "java.util.Collection<String>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
+        "deprecated" : false,
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "clientToken",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "clientToken",
+          "uri" : false
+        },
+        "idempotencyToken" : true,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ClientToken",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicyIdentity" : {
-          "c2jName" : "accessPolicyIdentity",
-          "c2jShape" : "Identity",
+        "AssetIds" : {
+          "c2jName" : "assetIds",
+          "c2jShape" : "IDs",
           "deprecated" : false,
-          "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
+          "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyIdentity",
-          "getterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@return The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
-          "getterMethodName" : "getAccessPolicyIdentity",
+          "fluentSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetIds",
+          "getterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@return The IDs of the assets to be disassociated from the project.*/",
+          "getterMethodName" : "getAssetIds",
           "getterModel" : {
-            "returnType" : "Identity",
+            "returnType" : "java.util.List<String>",
             "documentation" : null
           },
           "http" : {
@@ -20578,188 +19939,132 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyIdentity",
+            "marshallLocationName" : "assetIds",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyIdentity",
+            "unmarshallLocationName" : "assetIds",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AccessPolicyIdentity",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
-          "setterMethodName" : "setAccessPolicyIdentity",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Identity",
-            "variableName" : "accessPolicyIdentity",
-            "variableType" : "Identity",
-            "documentation" : "",
-            "simpleType" : "Identity",
-            "variableSetterType" : "Identity"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Identity",
-            "variableName" : "accessPolicyIdentity",
-            "variableType" : "Identity",
-            "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
-            "simpleType" : "Identity",
-            "variableSetterType" : "Identity"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AccessPolicyPermission" : {
-          "c2jName" : "accessPolicyPermission",
-          "c2jShape" : "Permission",
-          "deprecated" : false,
-          "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "Permission",
-          "fluentSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-          "fluentSetterMethodName" : "withAccessPolicyPermission",
-          "getterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-          "getterMethodName" : "getAccessPolicyPermission",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyPermission",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyPermission",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AccessPolicyPermission",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-          "setterMethodName" : "setAccessPolicyPermission",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyPermission",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyPermission",
-            "variableType" : "String",
-            "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "ID",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "member",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "member",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "String",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : true,
             "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AccessPolicyResource" : {
-          "c2jName" : "accessPolicyResource",
-          "c2jShape" : "Resource",
-          "deprecated" : false,
-          "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyResource",
-          "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@return The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
-          "getterMethodName" : "getAccessPolicyResource",
-          "getterModel" : {
-            "returnType" : "Resource",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyResource",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyResource",
-            "uri" : false
+            "templateImplType" : "java.util.ArrayList<String>",
+            "templateType" : "java.util.List<String>"
           },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AccessPolicyResource",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetIds",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
-          "setterMethodName" : "setAccessPolicyResource",
+          "setterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.*/",
+          "setterMethodName" : "setAssetIds",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Resource",
-            "variableName" : "accessPolicyResource",
-            "variableType" : "Resource",
+            "variableDeclarationType" : "java.util.List<String>",
+            "variableName" : "assetIds",
+            "variableType" : "java.util.List<String>",
             "documentation" : "",
-            "simpleType" : "Resource",
-            "variableSetterType" : "Resource"
+            "simpleType" : "List<String>",
+            "variableSetterType" : "java.util.Collection<String>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The IDs of the assets to be disassociated from the project.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetIds(java.util.Collection)} or {@link #withAssetIds(java.util.Collection)} if you want to override the existing values.</p>\n@param assetIds The IDs of the assets to be disassociated from the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Resource",
-            "variableName" : "accessPolicyResource",
-            "variableType" : "Resource",
-            "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
-            "simpleType" : "Resource",
-            "variableSetterType" : "Resource"
+            "variableDeclarationType" : "java.util.List<String>",
+            "variableName" : "assetIds",
+            "variableType" : "java.util.List<String>",
+            "documentation" : "<p>The IDs of the assets to be disassociated from the project.</p>",
+            "simpleType" : "List<String>",
+            "variableSetterType" : "java.util.Collection<String>"
           },
           "xmlNameSpaceUri" : null
         },
@@ -20833,19 +20138,19 @@
           },
           "xmlNameSpaceUri" : null
         },
-        "Tags" : {
-          "c2jName" : "tags",
-          "c2jShape" : "TagMap",
+        "ProjectId" : {
+          "c2jName" : "projectId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getTags",
+          "fluentSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectId",
+          "getterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@return The ID of the project from which to disassociate the assets.*/",
+          "getterMethodName" : "getProjectId",
           "getterModel" : {
-            "returnType" : "java.util.Map<String,String>",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -20856,134 +20161,50 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "tags",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "projectId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "tags",
-            "uri" : false
+            "unmarshallLocationName" : "projectId",
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
           "listModel" : null,
-          "map" : true,
-          "mapModel" : {
-            "implType" : "java.util.HashMap",
-            "interfaceType" : "java.util.Map",
-            "keyLocationName" : "key",
-            "keyModel" : null,
-            "keyType" : "String",
-            "valueLocationName" : "value",
-            "valueModel" : {
-              "c2jName" : "value",
-              "c2jShape" : "TagValue",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withValue",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getValue",
-              "getterModel" : {
-                "returnType" : "String",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "value",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "value",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
-              "name" : "Value",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param value */",
-              "setterMethodName" : "setValue",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : true,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "valueType" : "String",
-            "entryType" : "Map.Entry<String, String>",
-            "keySimple" : true,
-            "templateImplType" : "java.util.HashMap<String,String>",
-            "templateType" : "java.util.Map<String,String>",
-            "valueList" : false,
-            "valueSimple" : true
-          },
-          "marshallingTargetClass" : "Map",
-          "marshallingType" : "MAP",
-          "name" : "Tags",
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ProjectId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setTags",
+          "setterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.*/",
+          "setterMethodName" : "setProjectId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the project from which to disassociate the assets.</p>\n@param projectId The ID of the project from which to disassociate the assets.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the project from which to disassociate the assets.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
@@ -20991,24 +20212,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicyIdentity", "accessPolicyResource", "accessPolicyPermission" ],
-      "shapeName" : "CreateAccessPolicyRequest",
+      "required" : [ "projectId", "assetIds" ],
+      "shapeName" : "BatchDisassociateProjectAssetsRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAccessPolicyRequest",
-        "variableName" : "createAccessPolicyRequest",
-        "variableType" : "CreateAccessPolicyRequest",
+        "variableDeclarationType" : "BatchDisassociateProjectAssetsRequest",
+        "variableName" : "batchDisassociateProjectAssetsRequest",
+        "variableType" : "BatchDisassociateProjectAssetsRequest",
         "documentation" : null,
-        "simpleType" : "CreateAccessPolicyRequest",
-        "variableSetterType" : "CreateAccessPolicyRequest"
+        "simpleType" : "BatchDisassociateProjectAssetsRequest",
+        "variableSetterType" : "BatchDisassociateProjectAssetsRequest"
       },
       "wrapper" : false
     },
-    "CreateAccessPolicyResult" : {
-      "c2jName" : "CreateAccessPolicyResponse",
+    "BatchDisassociateProjectAssetsResult" : {
+      "c2jName" : "BatchDisassociateProjectAssetsResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -21020,7 +20241,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAccessPolicyResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchDisassociateProjectAssetsResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -21028,18 +20249,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "accessPolicyId",
-        "c2jShape" : "ID",
+        "c2jName" : "errors",
+        "c2jShape" : "BatchDisassociateProjectAssetsErrors",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the access policy.</p>",
+        "documentation" : "<p>A list of associated error information, if any.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyId",
-        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-        "getterMethodName" : "getAccessPolicyId",
+        "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withErrors",
+        "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
+        "getterMethodName" : "getErrors",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.List<AssetErrorDetails>",
           "documentation" : null
         },
         "http" : {
@@ -21052,134 +20273,149 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyId",
+          "marshallLocationName" : "errors",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyId",
+          "unmarshallLocationName" : "errors",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetErrorDetails",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetErrorDetails",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetErrorDetails",
+              "variableName" : "member",
+              "variableType" : "AssetErrorDetails",
+              "documentation" : "",
+              "simpleType" : "AssetErrorDetails",
+              "variableSetterType" : "AssetErrorDetails"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetErrorDetails",
+              "variableName" : "member",
+              "variableType" : "AssetErrorDetails",
+              "documentation" : "",
+              "simpleType" : "AssetErrorDetails",
+              "variableSetterType" : "AssetErrorDetails"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetErrorDetails",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetErrorDetails",
+          "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
+          "templateType" : "java.util.List<AssetErrorDetails>"
+        },
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AccessPolicyId",
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Errors",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-        "setterMethodName" : "setAccessPolicyId",
+        "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
+        "setterMethodName" : "setErrors",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<AssetErrorDetails>",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "List<AssetErrorDetails>",
+          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the access policy.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "accessPolicyArn",
-        "c2jShape" : "ARN",
-        "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-        "getterMethodName" : "getAccessPolicyArn",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyArn",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyArn",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AccessPolicyArn",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-        "setterMethodName" : "setAccessPolicyArn",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyArn",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyArn",
-          "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<AssetErrorDetails>",
+          "documentation" : "<p>A list of associated error information, if any.</p>",
+          "simpleType" : "List<AssetErrorDetails>",
+          "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicyArn" : {
-          "c2jName" : "accessPolicyArn",
-          "c2jShape" : "ARN",
+        "Errors" : {
+          "c2jName" : "errors",
+          "c2jShape" : "BatchDisassociateProjectAssetsErrors",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+          "documentation" : "<p>A list of associated error information, if any.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-          "getterMethodName" : "getAccessPolicyArn",
+          "fluentSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withErrors",
+          "getterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@return A list of associated error information, if any.*/",
+          "getterMethodName" : "getErrors",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.List<AssetErrorDetails>",
             "documentation" : null
           },
           "http" : {
@@ -21192,118 +20428,132 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyArn",
+            "marshallLocationName" : "errors",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyArn",
+            "unmarshallLocationName" : "errors",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AccessPolicyArn",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-          "setterMethodName" : "setAccessPolicyArn",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyArn",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyArn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AccessPolicyId" : {
-          "c2jName" : "accessPolicyId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the access policy.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyId",
-          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-          "getterMethodName" : "getAccessPolicyId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyId",
-            "uri" : false
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetErrorDetails",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetErrorDetails",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetErrorDetails",
+                "variableName" : "member",
+                "variableType" : "AssetErrorDetails",
+                "documentation" : "",
+                "simpleType" : "AssetErrorDetails",
+                "variableSetterType" : "AssetErrorDetails"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetErrorDetails",
+                "variableName" : "member",
+                "variableType" : "AssetErrorDetails",
+                "documentation" : "",
+                "simpleType" : "AssetErrorDetails",
+                "variableSetterType" : "AssetErrorDetails"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetErrorDetails",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetErrorDetails",
+            "templateImplType" : "java.util.ArrayList<AssetErrorDetails>",
+            "templateType" : "java.util.List<AssetErrorDetails>"
           },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AccessPolicyId",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Errors",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-          "setterMethodName" : "setAccessPolicyId",
+          "setterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n@param errors A list of associated error information, if any.*/",
+          "setterMethodName" : "setErrors",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<AssetErrorDetails>",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "List<AssetErrorDetails>",
+            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of associated error information, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors A list of associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the access policy.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.List<AssetErrorDetails>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<AssetErrorDetails>",
+            "documentation" : "<p>A list of associated error information, if any.</p>",
+            "simpleType" : "List<AssetErrorDetails>",
+            "variableSetterType" : "java.util.Collection<AssetErrorDetails>"
           },
           "xmlNameSpaceUri" : null
         }
@@ -21311,8 +20561,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicyId", "accessPolicyArn" ],
-      "shapeName" : "CreateAccessPolicyResult",
+      "required" : null,
+      "shapeName" : "BatchDisassociateProjectAssetsResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -21321,17 +20571,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAccessPolicyResult",
-        "variableName" : "createAccessPolicyResult",
-        "variableType" : "CreateAccessPolicyResult",
+        "variableDeclarationType" : "BatchDisassociateProjectAssetsResult",
+        "variableName" : "batchDisassociateProjectAssetsResult",
+        "variableType" : "BatchDisassociateProjectAssetsResult",
         "documentation" : null,
-        "simpleType" : "CreateAccessPolicyResult",
-        "variableSetterType" : "CreateAccessPolicyResult"
+        "simpleType" : "BatchDisassociateProjectAssetsResult",
+        "variableSetterType" : "BatchDisassociateProjectAssetsResult"
       },
       "wrapper" : false
     },
-    "CreateAssetModelRequest" : {
-      "c2jName" : "CreateAssetModelRequest",
+    "BatchPutAssetPropertyError" : {
+      "c2jName" : "BatchPutAssetPropertyError",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -21339,35 +20589,28 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains error information from updating a batch of asset property values.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAssetModelRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.BatchPutAssetPropertyError",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreateAssetModel",
-        "locationName" : null,
-        "requestUri" : "/asset-models",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetModelName",
-        "c2jShape" : "Name",
+        "c2jName" : "errorCode",
+        "c2jShape" : "BatchPutAssetPropertyValueErrorCode",
         "deprecated" : false,
-        "documentation" : "<p>A unique, friendly name for the asset model.</p>",
+        "documentation" : "<p>The error code.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelName",
-        "getterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@return A unique, friendly name for the asset model.*/",
-        "getterMethodName" : "getAssetModelName",
+        "enumType" : "BatchPutAssetPropertyValueErrorCode",
+        "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
+        "fluentSetterMethodName" : "withErrorCode",
+        "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
+        "getterMethodName" : "getErrorCode",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -21382,11 +20625,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelName",
+          "marshallLocationName" : "errorCode",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelName",
+          "unmarshallLocationName" : "errorCode",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -21398,14 +20641,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelName",
+        "name" : "ErrorCode",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.*/",
-        "setterMethodName" : "setAssetModelName",
+        "setterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
+        "setterMethodName" : "setErrorCode",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelName",
+          "variableName" : "errorCode",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -21415,28 +20658,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelName",
+          "variableName" : "errorCode",
           "variableType" : "String",
-          "documentation" : "<p>A unique, friendly name for the asset model.</p>",
+          "documentation" : "<p>The error code.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelDescription",
-        "c2jShape" : "Description",
+        "c2jName" : "errorMessage",
+        "c2jShape" : "ErrorMessage",
         "deprecated" : false,
-        "documentation" : "<p>A description for the asset model.</p>",
+        "documentation" : "<p>The associated error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelDescription",
-        "getterDocumentation" : "/**<p>A description for the asset model.</p>\n@return A description for the asset model.*/",
-        "getterMethodName" : "getAssetModelDescription",
+        "fluentSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withErrorMessage",
+        "getterDocumentation" : "/**<p>The associated error message.</p>\n@return The associated error message.*/",
+        "getterMethodName" : "getErrorMessage",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -21451,11 +20694,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelDescription",
+          "marshallLocationName" : "errorMessage",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelDescription",
+          "unmarshallLocationName" : "errorMessage",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -21467,14 +20710,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelDescription",
+        "name" : "ErrorMessage",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.*/",
-        "setterMethodName" : "setAssetModelDescription",
+        "setterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.*/",
+        "setterMethodName" : "setErrorMessage",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelDescription",
+          "variableName" : "errorMessage",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -21484,30 +20727,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelDescription",
+          "variableName" : "errorMessage",
           "variableType" : "String",
-          "documentation" : "<p>A description for the asset model.</p>",
+          "documentation" : "<p>The associated error message.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelProperties",
-        "c2jShape" : "AssetModelPropertyDefinitions",
+        "c2jName" : "timestamps",
+        "c2jShape" : "Timestamps",
         "deprecated" : false,
-        "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>A list of timestamps for each error, if any.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelProperties",
-        "getterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getAssetModelProperties",
+        "fluentSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTimestamps",
+        "getterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@return A list of timestamps for each error, if any.*/",
+        "getterMethodName" : "getTimestamps",
         "getterModel" : {
-          "returnType" : "java.util.List<AssetModelPropertyDefinition>",
+          "returnType" : "java.util.List<TimeInNanos>",
           "documentation" : null
         },
         "http" : {
@@ -21520,11 +20763,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelProperties",
+          "marshallLocationName" : "timestamps",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelProperties",
+          "unmarshallLocationName" : "timestamps",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -21536,7 +20779,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "AssetModelPropertyDefinition",
+            "c2jShape" : "TimeInNanos",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -21546,7 +20789,7 @@
             "getterDocumentation" : "/**\n@return */",
             "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "AssetModelPropertyDefinition",
+              "returnType" : "TimeInNanos",
               "documentation" : null
             },
             "http" : {
@@ -21581,12 +20824,12 @@
             "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableDeclarationType" : "TimeInNanos",
               "variableName" : "member",
-              "variableType" : "AssetModelPropertyDefinition",
+              "variableType" : "TimeInNanos",
               "documentation" : "",
-              "simpleType" : "AssetModelPropertyDefinition",
-              "variableSetterType" : "AssetModelPropertyDefinition"
+              "simpleType" : "TimeInNanos",
+              "variableSetterType" : "TimeInNanos"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
@@ -21595,447 +20838,142 @@
             "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableDeclarationType" : "TimeInNanos",
               "variableName" : "member",
-              "variableType" : "AssetModelPropertyDefinition",
+              "variableType" : "TimeInNanos",
               "documentation" : "",
-              "simpleType" : "AssetModelPropertyDefinition",
-              "variableSetterType" : "AssetModelPropertyDefinition"
+              "simpleType" : "TimeInNanos",
+              "variableSetterType" : "TimeInNanos"
             },
             "xmlNameSpaceUri" : null
           },
           "memberLocationName" : null,
-          "memberType" : "AssetModelPropertyDefinition",
+          "memberType" : "TimeInNanos",
           "map" : false,
           "marshallNonAutoConstructedEmptyLists" : false,
           "memberAdditionalMarshallingPath" : null,
           "memberAdditionalUnmarshallingPath" : null,
           "sendEmptyQueryString" : false,
           "simple" : false,
-          "simpleType" : "AssetModelPropertyDefinition",
-          "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
-          "templateType" : "java.util.List<AssetModelPropertyDefinition>"
+          "simpleType" : "TimeInNanos",
+          "templateImplType" : "java.util.ArrayList<TimeInNanos>",
+          "templateType" : "java.util.List<TimeInNanos>"
         },
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "List",
         "marshallingType" : "LIST",
-        "name" : "AssetModelProperties",
+        "name" : "Timestamps",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setAssetModelProperties",
+        "setterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.*/",
+        "setterMethodName" : "setTimestamps",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
-          "variableName" : "assetModelProperties",
-          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+          "variableDeclarationType" : "java.util.List<TimeInNanos>",
+          "variableName" : "timestamps",
+          "variableType" : "java.util.List<TimeInNanos>",
           "documentation" : "",
-          "simpleType" : "List<AssetModelPropertyDefinition>",
-          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+          "simpleType" : "List<TimeInNanos>",
+          "variableSetterType" : "java.util.Collection<TimeInNanos>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTimestamps(java.util.Collection)} or {@link #withTimestamps(java.util.Collection)} if you want to override the existing values.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
-          "variableName" : "assetModelProperties",
-          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
-          "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "List<AssetModelPropertyDefinition>",
-          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+          "variableDeclarationType" : "java.util.List<TimeInNanos>",
+          "variableName" : "timestamps",
+          "variableType" : "java.util.List<TimeInNanos>",
+          "documentation" : "<p>A list of timestamps for each error, if any.</p>",
+          "simpleType" : "List<TimeInNanos>",
+          "variableSetterType" : "java.util.Collection<TimeInNanos>"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelHierarchies",
-        "c2jShape" : "AssetModelHierarchyDefinitions",
-        "deprecated" : false,
-        "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelHierarchies",
-        "getterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getAssetModelHierarchies",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetModelHierarchyDefinition>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelHierarchies",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetModelHierarchies",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetModelHierarchyDefinition",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetModelHierarchyDefinition",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelHierarchyDefinition",
-              "variableName" : "member",
-              "variableType" : "AssetModelHierarchyDefinition",
-              "documentation" : "",
-              "simpleType" : "AssetModelHierarchyDefinition",
-              "variableSetterType" : "AssetModelHierarchyDefinition"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelHierarchyDefinition",
-              "variableName" : "member",
-              "variableType" : "AssetModelHierarchyDefinition",
-              "documentation" : "",
-              "simpleType" : "AssetModelHierarchyDefinition",
-              "variableSetterType" : "AssetModelHierarchyDefinition"
-            },
-            "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "ErrorCode" : {
+          "c2jName" : "errorCode",
+          "c2jShape" : "BatchPutAssetPropertyValueErrorCode",
+          "deprecated" : false,
+          "documentation" : "<p>The error code.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "BatchPutAssetPropertyValueErrorCode",
+          "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
+          "fluentSetterMethodName" : "withErrorCode",
+          "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
+          "getterMethodName" : "getErrorCode",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
           },
-          "memberLocationName" : null,
-          "memberType" : "AssetModelHierarchyDefinition",
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "errorCode",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "errorCode",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
           "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetModelHierarchyDefinition",
-          "templateImplType" : "java.util.ArrayList<AssetModelHierarchyDefinition>",
-          "templateType" : "java.util.List<AssetModelHierarchyDefinition>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetModelHierarchies",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setAssetModelHierarchies",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
-          "variableName" : "assetModelHierarchies",
-          "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
-          "documentation" : "",
-          "simpleType" : "List<AssetModelHierarchyDefinition>",
-          "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
-          "variableName" : "assetModelHierarchies",
-          "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
-          "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "List<AssetModelHierarchyDefinition>",
-          "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
-        },
-        "idempotencyToken" : true,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ClientToken",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "tags",
-        "c2jShape" : "TagMap",
-        "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getTags",
-        "getterModel" : {
-          "returnType" : "java.util.Map<String,String>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "tags",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "tags",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : true,
-        "mapModel" : {
-          "implType" : "java.util.HashMap",
-          "interfaceType" : "java.util.Map",
-          "keyLocationName" : "key",
-          "keyModel" : null,
-          "keyType" : "String",
-          "valueLocationName" : "value",
-          "valueModel" : {
-            "c2jName" : "value",
-            "c2jShape" : "TagValue",
-            "deprecated" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ErrorCode",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@see BatchPutAssetPropertyValueErrorCode*/",
+          "setterMethodName" : "setErrorCode",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "errorCode",
+            "variableType" : "String",
             "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withValue",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getValue",
-            "getterModel" : {
-              "returnType" : "String",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "value",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "value",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "String",
-            "marshallingType" : "STRING",
-            "name" : "Value",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param value */",
-            "setterMethodName" : "setValue",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : true,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "xmlNameSpaceUri" : null
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
-          "valueType" : "String",
-          "entryType" : "Map.Entry<String, String>",
-          "keySimple" : true,
-          "templateImplType" : "java.util.HashMap<String,String>",
-          "templateType" : "java.util.Map<String,String>",
-          "valueList" : false,
-          "valueSimple" : true
-        },
-        "marshallingTargetClass" : "Map",
-        "marshallingType" : "MAP",
-        "name" : "Tags",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setTags",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param errorCode The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see BatchPutAssetPropertyValueErrorCode*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "errorCode",
+            "variableType" : "String",
+            "documentation" : "<p>The error code.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetModelDescription" : {
-          "c2jName" : "assetModelDescription",
-          "c2jShape" : "Description",
+        "ErrorMessage" : {
+          "c2jName" : "errorMessage",
+          "c2jShape" : "ErrorMessage",
           "deprecated" : false,
-          "documentation" : "<p>A description for the asset model.</p>",
+          "documentation" : "<p>The associated error message.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelDescription",
-          "getterDocumentation" : "/**<p>A description for the asset model.</p>\n@return A description for the asset model.*/",
-          "getterMethodName" : "getAssetModelDescription",
+          "fluentSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withErrorMessage",
+          "getterDocumentation" : "/**<p>The associated error message.</p>\n@return The associated error message.*/",
+          "getterMethodName" : "getErrorMessage",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -22050,11 +20988,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelDescription",
+            "marshallLocationName" : "errorMessage",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelDescription",
+            "unmarshallLocationName" : "errorMessage",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -22066,14 +21004,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelDescription",
+          "name" : "ErrorMessage",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.*/",
-          "setterMethodName" : "setAssetModelDescription",
+          "setterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.*/",
+          "setterMethodName" : "setErrorMessage",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelDescription",
+            "variableName" : "errorMessage",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -22083,31 +21021,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The associated error message.</p>\n@param errorMessage The associated error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelDescription",
+            "variableName" : "errorMessage",
             "variableType" : "String",
-            "documentation" : "<p>A description for the asset model.</p>",
+            "documentation" : "<p>The associated error message.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelHierarchies" : {
-          "c2jName" : "assetModelHierarchies",
-          "c2jShape" : "AssetModelHierarchyDefinitions",
+        "Timestamps" : {
+          "c2jName" : "timestamps",
+          "c2jShape" : "Timestamps",
           "deprecated" : false,
-          "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of timestamps for each error, if any.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelHierarchies",
-          "getterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getAssetModelHierarchies",
+          "fluentSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTimestamps",
+          "getterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@return A list of timestamps for each error, if any.*/",
+          "getterMethodName" : "getTimestamps",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "returnType" : "java.util.List<TimeInNanos>",
             "documentation" : null
           },
           "http" : {
@@ -22120,11 +21058,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelHierarchies",
+            "marshallLocationName" : "timestamps",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelHierarchies",
+            "unmarshallLocationName" : "timestamps",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -22136,7 +21074,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "AssetModelHierarchyDefinition",
+              "c2jShape" : "TimeInNanos",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -22146,7 +21084,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "AssetModelHierarchyDefinition",
+                "returnType" : "TimeInNanos",
                 "documentation" : null
               },
               "http" : {
@@ -22181,12 +21119,12 @@
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelHierarchyDefinition",
+                "variableDeclarationType" : "TimeInNanos",
                 "variableName" : "member",
-                "variableType" : "AssetModelHierarchyDefinition",
+                "variableType" : "TimeInNanos",
                 "documentation" : "",
-                "simpleType" : "AssetModelHierarchyDefinition",
-                "variableSetterType" : "AssetModelHierarchyDefinition"
+                "simpleType" : "TimeInNanos",
+                "variableSetterType" : "TimeInNanos"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
@@ -22195,71 +21133,338 @@
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelHierarchyDefinition",
+                "variableDeclarationType" : "TimeInNanos",
                 "variableName" : "member",
-                "variableType" : "AssetModelHierarchyDefinition",
+                "variableType" : "TimeInNanos",
                 "documentation" : "",
-                "simpleType" : "AssetModelHierarchyDefinition",
-                "variableSetterType" : "AssetModelHierarchyDefinition"
+                "simpleType" : "TimeInNanos",
+                "variableSetterType" : "TimeInNanos"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "AssetModelHierarchyDefinition",
+            "memberType" : "TimeInNanos",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
             "simple" : false,
-            "simpleType" : "AssetModelHierarchyDefinition",
-            "templateImplType" : "java.util.ArrayList<AssetModelHierarchyDefinition>",
-            "templateType" : "java.util.List<AssetModelHierarchyDefinition>"
+            "simpleType" : "TimeInNanos",
+            "templateImplType" : "java.util.ArrayList<TimeInNanos>",
+            "templateType" : "java.util.List<TimeInNanos>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "AssetModelHierarchies",
+          "name" : "Timestamps",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setAssetModelHierarchies",
+          "setterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n@param timestamps A list of timestamps for each error, if any.*/",
+          "setterMethodName" : "setTimestamps",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
-            "variableName" : "assetModelHierarchies",
-            "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "variableDeclarationType" : "java.util.List<TimeInNanos>",
+            "variableName" : "timestamps",
+            "variableType" : "java.util.List<TimeInNanos>",
             "documentation" : "",
-            "simpleType" : "List<AssetModelHierarchyDefinition>",
-            "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+            "simpleType" : "List<TimeInNanos>",
+            "variableSetterType" : "java.util.Collection<TimeInNanos>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of timestamps for each error, if any.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTimestamps(java.util.Collection)} or {@link #withTimestamps(java.util.Collection)} if you want to override the existing values.</p>\n@param timestamps A list of timestamps for each error, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
-            "variableName" : "assetModelHierarchies",
-            "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
-            "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "List<AssetModelHierarchyDefinition>",
-            "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+            "variableDeclarationType" : "java.util.List<TimeInNanos>",
+            "variableName" : "timestamps",
+            "variableType" : "java.util.List<TimeInNanos>",
+            "documentation" : "<p>A list of timestamps for each error, if any.</p>",
+            "simpleType" : "List<TimeInNanos>",
+            "variableSetterType" : "java.util.Collection<TimeInNanos>"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "errorCode", "errorMessage", "timestamps" ],
+      "shapeName" : "BatchPutAssetPropertyError",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "BatchPutAssetPropertyError",
+        "variableName" : "batchPutAssetPropertyError",
+        "variableType" : "BatchPutAssetPropertyError",
+        "documentation" : null,
+        "simpleType" : "BatchPutAssetPropertyError",
+        "variableSetterType" : "BatchPutAssetPropertyError"
+      },
+      "wrapper" : false
+    },
+    "BatchPutAssetPropertyErrorEntry" : {
+      "c2jName" : "BatchPutAssetPropertyErrorEntry",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains error information for asset property value entries that are associated with the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html\">BatchPutAssetPropertyValue</a> API.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.BatchPutAssetPropertyErrorEntry",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "entryId",
+        "c2jShape" : "EntryId",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the failed entry.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withEntryId",
+        "getterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@return The ID of the failed entry.*/",
+        "getterMethodName" : "getEntryId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "AssetModelName" : {
-          "c2jName" : "assetModelName",
-          "c2jShape" : "Name",
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "entryId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "entryId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "EntryId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.*/",
+        "setterMethodName" : "setEntryId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "entryId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "entryId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the failed entry.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "errors",
+        "c2jShape" : "BatchPutAssetPropertyErrors",
+        "deprecated" : false,
+        "documentation" : "<p>The list of update property value errors.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withErrors",
+        "getterDocumentation" : "/**<p>The list of update property value errors.</p>\n@return The list of update property value errors.*/",
+        "getterMethodName" : "getErrors",
+        "getterModel" : {
+          "returnType" : "java.util.List<BatchPutAssetPropertyError>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "errors",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "errors",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "BatchPutAssetPropertyError",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "BatchPutAssetPropertyError",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "BatchPutAssetPropertyError",
+              "variableName" : "member",
+              "variableType" : "BatchPutAssetPropertyError",
+              "documentation" : "",
+              "simpleType" : "BatchPutAssetPropertyError",
+              "variableSetterType" : "BatchPutAssetPropertyError"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "BatchPutAssetPropertyError",
+              "variableName" : "member",
+              "variableType" : "BatchPutAssetPropertyError",
+              "documentation" : "",
+              "simpleType" : "BatchPutAssetPropertyError",
+              "variableSetterType" : "BatchPutAssetPropertyError"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "BatchPutAssetPropertyError",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "BatchPutAssetPropertyError",
+          "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyError>",
+          "templateType" : "java.util.List<BatchPutAssetPropertyError>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Errors",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.*/",
+        "setterMethodName" : "setErrors",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<BatchPutAssetPropertyError>",
+          "documentation" : "",
+          "simpleType" : "List<BatchPutAssetPropertyError>",
+          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
+          "variableName" : "errors",
+          "variableType" : "java.util.List<BatchPutAssetPropertyError>",
+          "documentation" : "<p>The list of update property value errors.</p>",
+          "simpleType" : "List<BatchPutAssetPropertyError>",
+          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "EntryId" : {
+          "c2jName" : "entryId",
+          "c2jShape" : "EntryId",
           "deprecated" : false,
-          "documentation" : "<p>A unique, friendly name for the asset model.</p>",
+          "documentation" : "<p>The ID of the failed entry.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelName",
-          "getterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@return A unique, friendly name for the asset model.*/",
-          "getterMethodName" : "getAssetModelName",
+          "fluentSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withEntryId",
+          "getterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@return The ID of the failed entry.*/",
+          "getterMethodName" : "getEntryId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -22274,11 +21479,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelName",
+            "marshallLocationName" : "entryId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelName",
+            "unmarshallLocationName" : "entryId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -22290,14 +21495,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelName",
+          "name" : "EntryId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.*/",
-          "setterMethodName" : "setAssetModelName",
+          "setterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.*/",
+          "setterMethodName" : "setEntryId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelName",
+            "variableName" : "entryId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -22307,31 +21512,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the failed entry.</p>\n@param entryId The ID of the failed entry.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelName",
+            "variableName" : "entryId",
             "variableType" : "String",
-            "documentation" : "<p>A unique, friendly name for the asset model.</p>",
+            "documentation" : "<p>The ID of the failed entry.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelProperties" : {
-          "c2jName" : "assetModelProperties",
-          "c2jShape" : "AssetModelPropertyDefinitions",
+        "Errors" : {
+          "c2jName" : "errors",
+          "c2jShape" : "BatchPutAssetPropertyErrors",
           "deprecated" : false,
-          "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The list of update property value errors.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelProperties",
-          "getterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getAssetModelProperties",
+          "fluentSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withErrors",
+          "getterDocumentation" : "/**<p>The list of update property value errors.</p>\n@return The list of update property value errors.*/",
+          "getterMethodName" : "getErrors",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetModelPropertyDefinition>",
+            "returnType" : "java.util.List<BatchPutAssetPropertyError>",
             "documentation" : null
           },
           "http" : {
@@ -22344,11 +21549,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelProperties",
+            "marshallLocationName" : "errors",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelProperties",
+            "unmarshallLocationName" : "errors",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -22360,7 +21565,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "AssetModelPropertyDefinition",
+              "c2jShape" : "BatchPutAssetPropertyError",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -22370,7 +21575,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "AssetModelPropertyDefinition",
+                "returnType" : "BatchPutAssetPropertyError",
                 "documentation" : null
               },
               "http" : {
@@ -22405,12 +21610,12 @@
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableDeclarationType" : "BatchPutAssetPropertyError",
                 "variableName" : "member",
-                "variableType" : "AssetModelPropertyDefinition",
+                "variableType" : "BatchPutAssetPropertyError",
                 "documentation" : "",
-                "simpleType" : "AssetModelPropertyDefinition",
-                "variableSetterType" : "AssetModelPropertyDefinition"
+                "simpleType" : "BatchPutAssetPropertyError",
+                "variableSetterType" : "BatchPutAssetPropertyError"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
@@ -22419,190 +21624,390 @@
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableDeclarationType" : "BatchPutAssetPropertyError",
                 "variableName" : "member",
-                "variableType" : "AssetModelPropertyDefinition",
+                "variableType" : "BatchPutAssetPropertyError",
                 "documentation" : "",
-                "simpleType" : "AssetModelPropertyDefinition",
-                "variableSetterType" : "AssetModelPropertyDefinition"
+                "simpleType" : "BatchPutAssetPropertyError",
+                "variableSetterType" : "BatchPutAssetPropertyError"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "AssetModelPropertyDefinition",
+            "memberType" : "BatchPutAssetPropertyError",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
             "simple" : false,
-            "simpleType" : "AssetModelPropertyDefinition",
-            "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
-            "templateType" : "java.util.List<AssetModelPropertyDefinition>"
+            "simpleType" : "BatchPutAssetPropertyError",
+            "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyError>",
+            "templateType" : "java.util.List<BatchPutAssetPropertyError>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "AssetModelProperties",
+          "name" : "Errors",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setAssetModelProperties",
+          "setterDocumentation" : "/**<p>The list of update property value errors.</p>\n@param errors The list of update property value errors.*/",
+          "setterMethodName" : "setErrors",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
-            "variableName" : "assetModelProperties",
-            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<BatchPutAssetPropertyError>",
             "documentation" : "",
-            "simpleType" : "List<AssetModelPropertyDefinition>",
-            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+            "simpleType" : "List<BatchPutAssetPropertyError>",
+            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
-            "variableName" : "assetModelProperties",
-            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
-            "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "List<AssetModelPropertyDefinition>",
-            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The list of update property value errors.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrors(java.util.Collection)} or {@link #withErrors(java.util.Collection)} if you want to override the existing values.</p>\n@param errors The list of update property value errors.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyError>",
+            "variableName" : "errors",
+            "variableType" : "java.util.List<BatchPutAssetPropertyError>",
+            "documentation" : "<p>The list of update property value errors.</p>",
+            "simpleType" : "List<BatchPutAssetPropertyError>",
+            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyError>"
           },
           "xmlNameSpaceUri" : null
-        },
-        "Tags" : {
-          "c2jName" : "tags",
-          "c2jShape" : "TagMap",
-          "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getTags",
-          "getterModel" : {
-            "returnType" : "java.util.Map<String,String>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "tags",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "tags",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : true,
-          "mapModel" : {
-            "implType" : "java.util.HashMap",
-            "interfaceType" : "java.util.Map",
-            "keyLocationName" : "key",
-            "keyModel" : null,
-            "keyType" : "String",
-            "valueLocationName" : "value",
-            "valueModel" : {
-              "c2jName" : "value",
-              "c2jShape" : "TagValue",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withValue",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getValue",
-              "getterModel" : {
-                "returnType" : "String",
-                "documentation" : null
-              },
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "entryId", "errors" ],
+      "shapeName" : "BatchPutAssetPropertyErrorEntry",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+        "variableName" : "batchPutAssetPropertyErrorEntry",
+        "variableType" : "BatchPutAssetPropertyErrorEntry",
+        "documentation" : null,
+        "simpleType" : "BatchPutAssetPropertyErrorEntry",
+        "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+      },
+      "wrapper" : false
+    },
+    "BatchPutAssetPropertyValueErrorCode" : {
+      "c2jName" : "BatchPutAssetPropertyValueErrorCode",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "ResourceNotFoundException",
+        "value" : "ResourceNotFoundException"
+      }, {
+        "name" : "InvalidRequestException",
+        "value" : "InvalidRequestException"
+      }, {
+        "name" : "InternalFailureException",
+        "value" : "InternalFailureException"
+      }, {
+        "name" : "ServiceUnavailableException",
+        "value" : "ServiceUnavailableException"
+      }, {
+        "name" : "ThrottlingException",
+        "value" : "ThrottlingException"
+      }, {
+        "name" : "LimitExceededException",
+        "value" : "LimitExceededException"
+      }, {
+        "name" : "ConflictingOperationException",
+        "value" : "ConflictingOperationException"
+      }, {
+        "name" : "TimestampOutOfRangeException",
+        "value" : "TimestampOutOfRangeException"
+      }, {
+        "name" : "AccessDeniedException",
+        "value" : "AccessDeniedException"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.BatchPutAssetPropertyValueErrorCode",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "BatchPutAssetPropertyValueErrorCode",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "BatchPutAssetPropertyValueErrorCode",
+        "variableName" : "batchPutAssetPropertyValueErrorCode",
+        "variableType" : "BatchPutAssetPropertyValueErrorCode",
+        "documentation" : null,
+        "simpleType" : "BatchPutAssetPropertyValueErrorCode",
+        "variableSetterType" : "BatchPutAssetPropertyValueErrorCode"
+      },
+      "wrapper" : false
+    },
+    "BatchPutAssetPropertyValueRequest" : {
+      "c2jName" : "BatchPutAssetPropertyValueRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.BatchPutAssetPropertyValueRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "BatchPutAssetPropertyValue",
+        "locationName" : null,
+        "requestUri" : "/properties",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "entries",
+        "c2jShape" : "PutAssetPropertyValueEntries",
+        "deprecated" : false,
+        "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withEntries",
+        "getterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@return The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
+        "getterMethodName" : "getEntries",
+        "getterModel" : {
+          "returnType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "entries",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "entries",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "PutAssetPropertyValueEntry",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "PutAssetPropertyValueEntry",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "PutAssetPropertyValueEntry",
+              "variableName" : "member",
+              "variableType" : "PutAssetPropertyValueEntry",
+              "documentation" : "",
+              "simpleType" : "PutAssetPropertyValueEntry",
+              "variableSetterType" : "PutAssetPropertyValueEntry"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "PutAssetPropertyValueEntry",
+              "variableName" : "member",
+              "variableType" : "PutAssetPropertyValueEntry",
+              "documentation" : "",
+              "simpleType" : "PutAssetPropertyValueEntry",
+              "variableSetterType" : "PutAssetPropertyValueEntry"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "PutAssetPropertyValueEntry",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "PutAssetPropertyValueEntry",
+          "templateImplType" : "java.util.ArrayList<PutAssetPropertyValueEntry>",
+          "templateType" : "java.util.List<PutAssetPropertyValueEntry>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "Entries",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
+        "setterMethodName" : "setEntries",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "variableName" : "entries",
+          "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "documentation" : "",
+          "simpleType" : "List<PutAssetPropertyValueEntry>",
+          "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEntries(java.util.Collection)} or {@link #withEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "variableName" : "entries",
+          "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
+          "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+          "simpleType" : "List<PutAssetPropertyValueEntry>",
+          "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Entries" : {
+          "c2jName" : "entries",
+          "c2jShape" : "PutAssetPropertyValueEntries",
+          "deprecated" : false,
+          "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withEntries",
+          "getterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@return The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
+          "getterMethodName" : "getEntries",
+          "getterModel" : {
+            "returnType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "entries",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "entries",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "PutAssetPropertyValueEntry",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "PutAssetPropertyValueEntry",
+                "documentation" : null
+              },
               "http" : {
                 "additionalMarshallingPath" : null,
                 "additionalUnmarshallingPath" : null,
@@ -22613,11 +22018,11 @@
                 "isStreaming" : false,
                 "location" : null,
                 "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "value",
+                "marshallLocationName" : "member",
                 "queryString" : false,
                 "requiresLength" : false,
                 "statusCode" : false,
-                "unmarshallLocationName" : "value",
+                "unmarshallLocationName" : "member",
                 "uri" : false
               },
               "idempotencyToken" : false,
@@ -22627,73 +22032,79 @@
               "listModel" : null,
               "map" : false,
               "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
-              "name" : "Value",
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
               "sensitive" : false,
-              "setterDocumentation" : "/**\n@param value */",
-              "setterMethodName" : "setValue",
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
+                "variableDeclarationType" : "PutAssetPropertyValueEntry",
+                "variableName" : "member",
+                "variableType" : "PutAssetPropertyValueEntry",
                 "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
+                "simpleType" : "PutAssetPropertyValueEntry",
+                "variableSetterType" : "PutAssetPropertyValueEntry"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
-              "simple" : true,
+              "simple" : false,
               "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
+                "variableDeclarationType" : "PutAssetPropertyValueEntry",
+                "variableName" : "member",
+                "variableType" : "PutAssetPropertyValueEntry",
                 "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
+                "simpleType" : "PutAssetPropertyValueEntry",
+                "variableSetterType" : "PutAssetPropertyValueEntry"
               },
               "xmlNameSpaceUri" : null
             },
-            "valueType" : "String",
-            "entryType" : "Map.Entry<String, String>",
-            "keySimple" : true,
-            "templateImplType" : "java.util.HashMap<String,String>",
-            "templateType" : "java.util.Map<String,String>",
-            "valueList" : false,
-            "valueSimple" : true
+            "memberLocationName" : null,
+            "memberType" : "PutAssetPropertyValueEntry",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "PutAssetPropertyValueEntry",
+            "templateImplType" : "java.util.ArrayList<PutAssetPropertyValueEntry>",
+            "templateType" : "java.util.List<PutAssetPropertyValueEntry>"
           },
-          "marshallingTargetClass" : "Map",
-          "marshallingType" : "MAP",
-          "name" : "Tags",
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "Entries",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setTags",
+          "setterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.*/",
+          "setterMethodName" : "setEntries",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
+            "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "variableName" : "entries",
+            "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
             "documentation" : "",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
+            "simpleType" : "List<PutAssetPropertyValueEntry>",
+            "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setEntries(java.util.Collection)} or {@link #withEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param entries The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
+            "variableDeclarationType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "variableName" : "entries",
+            "variableType" : "java.util.List<PutAssetPropertyValueEntry>",
+            "documentation" : "<p>The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.</p>",
+            "simpleType" : "List<PutAssetPropertyValueEntry>",
+            "variableSetterType" : "java.util.Collection<PutAssetPropertyValueEntry>"
           },
           "xmlNameSpaceUri" : null
         }
@@ -22701,24 +22112,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelName" ],
-      "shapeName" : "CreateAssetModelRequest",
+      "required" : [ "entries" ],
+      "shapeName" : "BatchPutAssetPropertyValueRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAssetModelRequest",
-        "variableName" : "createAssetModelRequest",
-        "variableType" : "CreateAssetModelRequest",
+        "variableDeclarationType" : "BatchPutAssetPropertyValueRequest",
+        "variableName" : "batchPutAssetPropertyValueRequest",
+        "variableType" : "BatchPutAssetPropertyValueRequest",
         "documentation" : null,
-        "simpleType" : "CreateAssetModelRequest",
-        "variableSetterType" : "CreateAssetModelRequest"
+        "simpleType" : "BatchPutAssetPropertyValueRequest",
+        "variableSetterType" : "BatchPutAssetPropertyValueRequest"
       },
       "wrapper" : false
     },
-    "CreateAssetModelResult" : {
-      "c2jName" : "CreateAssetModelResponse",
+    "BatchPutAssetPropertyValueResult" : {
+      "c2jName" : "BatchPutAssetPropertyValueResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -22730,7 +22141,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAssetModelResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.BatchPutAssetPropertyValueResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -22738,18 +22149,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "errorEntries",
+        "c2jShape" : "BatchPutAssetPropertyErrorEntries",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+        "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withErrorEntries",
+        "getterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@return A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
+        "getterMethodName" : "getErrorEntries",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
           "documentation" : null
         },
         "http" : {
@@ -22762,65 +22173,401 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "marshallLocationName" : "errorEntries",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "errorEntries",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetModelId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-        "setterMethodName" : "setAssetModelId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelArn",
-        "c2jShape" : "ARN",
-        "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "getterMethodName" : "getAssetModelArn",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "BatchPutAssetPropertyErrorEntry",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "BatchPutAssetPropertyErrorEntry",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+              "variableName" : "member",
+              "variableType" : "BatchPutAssetPropertyErrorEntry",
+              "documentation" : "",
+              "simpleType" : "BatchPutAssetPropertyErrorEntry",
+              "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+              "variableName" : "member",
+              "variableType" : "BatchPutAssetPropertyErrorEntry",
+              "documentation" : "",
+              "simpleType" : "BatchPutAssetPropertyErrorEntry",
+              "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "BatchPutAssetPropertyErrorEntry",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "BatchPutAssetPropertyErrorEntry",
+          "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyErrorEntry>",
+          "templateType" : "java.util.List<BatchPutAssetPropertyErrorEntry>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "ErrorEntries",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
+        "setterMethodName" : "setErrorEntries",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+          "variableName" : "errorEntries",
+          "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+          "documentation" : "",
+          "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
+          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrorEntries(java.util.Collection)} or {@link #withErrorEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+          "variableName" : "errorEntries",
+          "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+          "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
+          "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
+          "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "ErrorEntries" : {
+          "c2jName" : "errorEntries",
+          "c2jShape" : "BatchPutAssetPropertyErrorEntries",
+          "deprecated" : false,
+          "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withErrorEntries",
+          "getterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@return A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
+          "getterMethodName" : "getErrorEntries",
+          "getterModel" : {
+            "returnType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "errorEntries",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "errorEntries",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "BatchPutAssetPropertyErrorEntry",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "BatchPutAssetPropertyErrorEntry",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+                "variableName" : "member",
+                "variableType" : "BatchPutAssetPropertyErrorEntry",
+                "documentation" : "",
+                "simpleType" : "BatchPutAssetPropertyErrorEntry",
+                "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "BatchPutAssetPropertyErrorEntry",
+                "variableName" : "member",
+                "variableType" : "BatchPutAssetPropertyErrorEntry",
+                "documentation" : "",
+                "simpleType" : "BatchPutAssetPropertyErrorEntry",
+                "variableSetterType" : "BatchPutAssetPropertyErrorEntry"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "BatchPutAssetPropertyErrorEntry",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "BatchPutAssetPropertyErrorEntry",
+            "templateImplType" : "java.util.ArrayList<BatchPutAssetPropertyErrorEntry>",
+            "templateType" : "java.util.List<BatchPutAssetPropertyErrorEntry>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "ErrorEntries",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.*/",
+          "setterMethodName" : "setErrorEntries",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "variableName" : "errorEntries",
+            "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "documentation" : "",
+            "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
+            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setErrorEntries(java.util.Collection)} or {@link #withErrorEntries(java.util.Collection)} if you want to override the existing values.</p>\n@param errorEntries A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "variableName" : "errorEntries",
+            "variableType" : "java.util.List<BatchPutAssetPropertyErrorEntry>",
+            "documentation" : "<p>A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.</p>",
+            "simpleType" : "List<BatchPutAssetPropertyErrorEntry>",
+            "variableSetterType" : "java.util.Collection<BatchPutAssetPropertyErrorEntry>"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "errorEntries" ],
+      "shapeName" : "BatchPutAssetPropertyValueResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "BatchPutAssetPropertyValueResult",
+        "variableName" : "batchPutAssetPropertyValueResult",
+        "variableType" : "BatchPutAssetPropertyValueResult",
+        "documentation" : null,
+        "simpleType" : "BatchPutAssetPropertyValueResult",
+        "variableSetterType" : "BatchPutAssetPropertyValueResult"
+      },
+      "wrapper" : false
+    },
+    "CapabilitySyncStatus" : {
+      "c2jName" : "CapabilitySyncStatus",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "IN_SYNC",
+        "value" : "IN_SYNC"
+      }, {
+        "name" : "OUT_OF_SYNC",
+        "value" : "OUT_OF_SYNC"
+      }, {
+        "name" : "SYNC_FAILED",
+        "value" : "SYNC_FAILED"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.CapabilitySyncStatus",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "CapabilitySyncStatus",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "CapabilitySyncStatus",
+        "variableName" : "capabilitySyncStatus",
+        "variableType" : "CapabilitySyncStatus",
+        "documentation" : null,
+        "simpleType" : "CapabilitySyncStatus",
+        "variableSetterType" : "CapabilitySyncStatus"
+      },
+      "wrapper" : false
+    },
+    "CompositeModelProperty" : {
+      "c2jName" : "CompositeModelProperty",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information about a composite model property on an asset.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.CompositeModelProperty",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "name",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The name of the property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+        "getterMethodName" : "getName",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
         "http" : {
           "additionalMarshallingPath" : null,
           "additionalUnmarshallingPath" : null,
@@ -22831,11 +22578,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelArn",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelArn",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -22847,14 +22594,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelArn",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "setterMethodName" : "setAssetModelArn",
+        "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelArn",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -22864,30 +22611,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelArn",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "documentation" : "<p>The name of the property.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelStatus",
-        "c2jShape" : "AssetModelStatus",
+        "c2jName" : "type",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+        "documentation" : "<p>The type of the composite model that defines this property.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelStatus",
-        "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getAssetModelStatus",
+        "fluentSetterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@return The type of the composite model that defines this property.*/",
+        "getterMethodName" : "getType",
         "getterModel" : {
-          "returnType" : "AssetModelStatus",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -22900,11 +22647,80 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelStatus",
+          "marshallLocationName" : "type",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelStatus",
+          "unmarshallLocationName" : "type",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Type",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.*/",
+        "setterMethodName" : "setType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "type",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "type",
+          "variableType" : "String",
+          "documentation" : "<p>The type of the composite model that defines this property.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetProperty",
+        "c2jShape" : "Property",
+        "deprecated" : false,
+        "documentation" : "",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**\n@param assetProperty \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetProperty",
+        "getterDocumentation" : "/**\n@return */",
+        "getterMethodName" : "getAssetProperty",
+        "getterModel" : {
+          "returnType" : "Property",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetProperty",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetProperty",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -22916,49 +22732,49 @@
         "mapModel" : null,
         "marshallingTargetClass" : "StructuredPojo",
         "marshallingType" : "STRUCTURED",
-        "name" : "AssetModelStatus",
+        "name" : "AssetProperty",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setAssetModelStatus",
+        "setterDocumentation" : "/**\n@param assetProperty */",
+        "setterMethodName" : "setAssetProperty",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
+          "variableDeclarationType" : "Property",
+          "variableName" : "assetProperty",
+          "variableType" : "Property",
           "documentation" : "",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
+          "simpleType" : "Property",
+          "variableSetterType" : "Property"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**\n@param assetProperty \n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
+          "variableDeclarationType" : "Property",
+          "variableName" : "assetProperty",
+          "variableType" : "Property",
+          "documentation" : "",
+          "simpleType" : "Property",
+          "variableSetterType" : "Property"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetModelArn" : {
-          "c2jName" : "assetModelArn",
-          "c2jShape" : "ARN",
+        "AssetProperty" : {
+          "c2jName" : "assetProperty",
+          "c2jShape" : "Property",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "documentation" : "",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "getterMethodName" : "getAssetModelArn",
+          "fluentSetterDocumentation" : "/**\n@param assetProperty \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetProperty",
+          "getterDocumentation" : "/**\n@return */",
+          "getterMethodName" : "getAssetProperty",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "Property",
             "documentation" : null
           },
           "http" : {
@@ -22971,11 +22787,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelArn",
+            "marshallLocationName" : "assetProperty",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelArn",
+            "unmarshallLocationName" : "assetProperty",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -22985,48 +22801,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelArn",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetProperty",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "setterMethodName" : "setAssetModelArn",
+          "setterDocumentation" : "/**\n@param assetProperty */",
+          "setterMethodName" : "setAssetProperty",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelArn",
-            "variableType" : "String",
+            "variableDeclarationType" : "Property",
+            "variableName" : "assetProperty",
+            "variableType" : "Property",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Property",
+            "variableSetterType" : "Property"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**\n@param assetProperty \n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelArn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "Property",
+            "variableName" : "assetProperty",
+            "variableType" : "Property",
+            "documentation" : "",
+            "simpleType" : "Property",
+            "variableSetterType" : "Property"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+          "documentation" : "<p>The name of the property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-          "getterMethodName" : "getAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the property.</p>\n@return The name of the property.*/",
+          "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -23041,11 +22857,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
+            "marshallLocationName" : "name",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
+            "unmarshallLocationName" : "name",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -23057,14 +22873,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelId",
+          "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-          "setterMethodName" : "setAssetModelId",
+          "setterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.*/",
+          "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "name",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -23074,31 +22890,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the property.</p>\n@param name The name of the property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+            "documentation" : "<p>The name of the property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelStatus" : {
-          "c2jName" : "assetModelStatus",
-          "c2jShape" : "AssetModelStatus",
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "documentation" : "<p>The type of the composite model that defines this property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelStatus",
-          "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getAssetModelStatus",
+          "fluentSetterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@return The type of the composite model that defines this property.*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
-            "returnType" : "AssetModelStatus",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -23111,11 +22927,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelStatus",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelStatus",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -23125,43 +22941,43 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetModelStatus",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setAssetModelStatus",
+          "setterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
+            "variableDeclarationType" : "String",
+            "variableName" : "type",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The type of the composite model that defines this property.</p>\n@param type The type of the composite model that defines this property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
+            "variableDeclarationType" : "String",
+            "variableName" : "type",
+            "variableType" : "String",
+            "documentation" : "<p>The type of the composite model that defines this property.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelId", "assetModelArn", "assetModelStatus" ],
-      "shapeName" : "CreateAssetModelResult",
+      "required" : [ "name", "type", "assetProperty" ],
+      "shapeName" : "CompositeModelProperty",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -23170,17 +22986,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAssetModelResult",
-        "variableName" : "createAssetModelResult",
-        "variableType" : "CreateAssetModelResult",
+        "variableDeclarationType" : "CompositeModelProperty",
+        "variableName" : "compositeModelProperty",
+        "variableType" : "CompositeModelProperty",
         "documentation" : null,
-        "simpleType" : "CreateAssetModelResult",
-        "variableSetterType" : "CreateAssetModelResult"
+        "simpleType" : "CompositeModelProperty",
+        "variableSetterType" : "CompositeModelProperty"
       },
       "wrapper" : false
     },
-    "CreateAssetRequest" : {
-      "c2jName" : "CreateAssetRequest",
+    "ConfigurationErrorDetails" : {
+      "c2jName" : "ConfigurationErrorDetails",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -23188,35 +23004,28 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains the details of an AWS IoT SiteWise configuration error.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAssetRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ConfigurationErrorDetails",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreateAsset",
-        "locationName" : null,
-        "requestUri" : "/assets",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetName",
-        "c2jShape" : "Name",
+        "c2jName" : "code",
+        "c2jShape" : "ErrorCode",
         "deprecated" : false,
-        "documentation" : "<p>A unique, friendly name for the asset.</p>",
+        "documentation" : "<p>The error code.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetName",
-        "getterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@return A unique, friendly name for the asset.*/",
-        "getterMethodName" : "getAssetName",
+        "enumType" : "ErrorCode",
+        "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
+        "fluentSetterMethodName" : "withCode",
+        "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see ErrorCode*/",
+        "getterMethodName" : "getCode",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -23231,11 +23040,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetName",
+          "marshallLocationName" : "code",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetName",
+          "unmarshallLocationName" : "code",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -23247,14 +23056,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetName",
+        "name" : "Code",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.*/",
-        "setterMethodName" : "setAssetName",
+        "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see ErrorCode*/",
+        "setterMethodName" : "setCode",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "code",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -23264,28 +23073,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "code",
           "variableType" : "String",
-          "documentation" : "<p>A unique, friendly name for the asset.</p>",
+          "documentation" : "<p>The error code.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "message",
+        "c2jShape" : "ErrorMessage",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
+        "documentation" : "<p>The error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@return The ID of the asset model from which to create the asset.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withMessage",
+        "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
+        "getterMethodName" : "getMessage",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -23300,11 +23109,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "marshallLocationName" : "message",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "message",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -23316,83 +23125,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.*/",
-        "setterMethodName" : "setAssetModelId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
-        },
-        "idempotencyToken" : true,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "Message",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
+        "setterMethodName" : "setMessage",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "message",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -23402,183 +23142,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "message",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The error message.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "tags",
-        "c2jShape" : "TagMap",
-        "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getTags",
-        "getterModel" : {
-          "returnType" : "java.util.Map<String,String>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "tags",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "tags",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : true,
-        "mapModel" : {
-          "implType" : "java.util.HashMap",
-          "interfaceType" : "java.util.Map",
-          "keyLocationName" : "key",
-          "keyModel" : null,
-          "keyType" : "String",
-          "valueLocationName" : "value",
-          "valueModel" : {
-            "c2jName" : "value",
-            "c2jShape" : "TagValue",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withValue",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getValue",
-            "getterModel" : {
-              "returnType" : "String",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "value",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "value",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "String",
-            "marshallingType" : "STRING",
-            "name" : "Value",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param value */",
-            "setterMethodName" : "setValue",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : true,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
-              "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "valueType" : "String",
-          "entryType" : "Map.Entry<String, String>",
-          "keySimple" : true,
-          "templateImplType" : "java.util.HashMap<String,String>",
-          "templateType" : "java.util.Map<String,String>",
-          "valueList" : false,
-          "valueSimple" : true
-        },
-        "marshallingTargetClass" : "Map",
-        "marshallingType" : "MAP",
-        "name" : "Tags",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setTags",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
+        "Code" : {
+          "c2jName" : "code",
+          "c2jShape" : "ErrorCode",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
+          "documentation" : "<p>The error code.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@return The ID of the asset model from which to create the asset.*/",
-          "getterMethodName" : "getAssetModelId",
+          "enumType" : "ErrorCode",
+          "fluentSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
+          "fluentSetterMethodName" : "withCode",
+          "getterDocumentation" : "/**<p>The error code.</p>\n@return The error code.\n@see ErrorCode*/",
+          "getterMethodName" : "getCode",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -23593,11 +23180,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
+            "marshallLocationName" : "code",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
+            "unmarshallLocationName" : "code",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -23609,14 +23196,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelId",
+          "name" : "Code",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.*/",
-          "setterMethodName" : "setAssetModelId",
+          "setterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@see ErrorCode*/",
+          "setterMethodName" : "setCode",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "code",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -23626,29 +23213,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The error code.</p>\n@param code The error code.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ErrorCode*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "code",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
+            "documentation" : "<p>The error code.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetName" : {
-          "c2jName" : "assetName",
-          "c2jShape" : "Name",
+        "Message" : {
+          "c2jName" : "message",
+          "c2jShape" : "ErrorMessage",
           "deprecated" : false,
-          "documentation" : "<p>A unique, friendly name for the asset.</p>",
+          "documentation" : "<p>The error message.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetName",
-          "getterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@return A unique, friendly name for the asset.*/",
-          "getterMethodName" : "getAssetName",
+          "fluentSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withMessage",
+          "getterDocumentation" : "/**<p>The error message.</p>\n@return The error message.*/",
+          "getterMethodName" : "getMessage",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -23663,11 +23250,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetName",
+            "marshallLocationName" : "message",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetName",
+            "unmarshallLocationName" : "message",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -23679,84 +23266,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetName",
+          "name" : "Message",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.*/",
-          "setterMethodName" : "setAssetName",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetName",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetName",
-            "variableType" : "String",
-            "documentation" : "<p>A unique, friendly name for the asset.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.*/",
+          "setterMethodName" : "setMessage",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "message",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -23766,194 +23283,43 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The error message.</p>\n@param message The error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "message",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The error message.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "Tags" : {
-          "c2jName" : "tags",
-          "c2jShape" : "TagMap",
-          "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getTags",
-          "getterModel" : {
-            "returnType" : "java.util.Map<String,String>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "tags",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "tags",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : true,
-          "mapModel" : {
-            "implType" : "java.util.HashMap",
-            "interfaceType" : "java.util.Map",
-            "keyLocationName" : "key",
-            "keyModel" : null,
-            "keyType" : "String",
-            "valueLocationName" : "value",
-            "valueModel" : {
-              "c2jName" : "value",
-              "c2jShape" : "TagValue",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withValue",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getValue",
-              "getterModel" : {
-                "returnType" : "String",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "value",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "value",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
-              "name" : "Value",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param value */",
-              "setterMethodName" : "setValue",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : true,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "valueType" : "String",
-            "entryType" : "Map.Entry<String, String>",
-            "keySimple" : true,
-            "templateImplType" : "java.util.HashMap<String,String>",
-            "templateType" : "java.util.Map<String,String>",
-            "valueList" : false,
-            "valueSimple" : true
-          },
-          "marshallingTargetClass" : "Map",
-          "marshallingType" : "MAP",
-          "name" : "Tags",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setTags",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetName", "assetModelId" ],
-      "shapeName" : "CreateAssetRequest",
+      "required" : [ "code", "message" ],
+      "shapeName" : "ConfigurationErrorDetails",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAssetRequest",
-        "variableName" : "createAssetRequest",
-        "variableType" : "CreateAssetRequest",
+        "variableDeclarationType" : "ConfigurationErrorDetails",
+        "variableName" : "configurationErrorDetails",
+        "variableType" : "ConfigurationErrorDetails",
         "documentation" : null,
-        "simpleType" : "CreateAssetRequest",
-        "variableSetterType" : "CreateAssetRequest"
+        "simpleType" : "ConfigurationErrorDetails",
+        "variableSetterType" : "ConfigurationErrorDetails"
       },
       "wrapper" : false
     },
-    "CreateAssetResult" : {
-      "c2jName" : "CreateAssetResponse",
+    "ConfigurationState" : {
+      "c2jName" : "ConfigurationState",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -23963,9 +23329,62 @@
       "deprecated" : false,
       "documentation" : "",
       "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "ACTIVE",
+        "value" : "ACTIVE"
+      }, {
+        "name" : "UPDATE_IN_PROGRESS",
+        "value" : "UPDATE_IN_PROGRESS"
+      }, {
+        "name" : "UPDATE_FAILED",
+        "value" : "UPDATE_FAILED"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.ConfigurationState",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "ConfigurationState",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "ConfigurationState",
+        "variableName" : "configurationState",
+        "variableType" : "ConfigurationState",
+        "documentation" : null,
+        "simpleType" : "ConfigurationState",
+        "variableSetterType" : "ConfigurationState"
+      },
+      "wrapper" : false
+    },
+    "ConfigurationStatus" : {
+      "c2jName" : "ConfigurationStatus",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains current status information for the configuration.</p>",
+      "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAssetResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ConfigurationStatus",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -23973,85 +23392,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
-        "getterMethodName" : "getAssetId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
-        "setterMethodName" : "setAssetId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetArn",
-        "c2jShape" : "ARN",
+        "c2jName" : "state",
+        "c2jShape" : "ConfigurationState",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+        "documentation" : "<p>The current state of the configuration.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "getterMethodName" : "getAssetArn",
+        "enumType" : "ConfigurationState",
+        "fluentSetterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
+        "fluentSetterMethodName" : "withState",
+        "getterDocumentation" : "/**<p>The current state of the configuration.</p>\n@return The current state of the configuration.\n@see ConfigurationState*/",
+        "getterMethodName" : "getState",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -24066,11 +23416,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetArn",
+          "marshallLocationName" : "state",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetArn",
+          "unmarshallLocationName" : "state",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24082,14 +23432,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetArn",
+        "name" : "State",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "setterMethodName" : "setAssetArn",
+        "setterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@see ConfigurationState*/",
+        "setterMethodName" : "setState",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetArn",
+          "variableName" : "state",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -24099,30 +23449,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetArn",
+          "variableName" : "state",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>The current state of the configuration.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetStatus",
-        "c2jShape" : "AssetStatus",
+        "c2jName" : "error",
+        "c2jShape" : "ConfigurationErrorDetails",
         "deprecated" : false,
-        "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+        "documentation" : "<p>Contains associated error information, if any.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetStatus",
-        "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getAssetStatus",
+        "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withError",
+        "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
+        "getterMethodName" : "getError",
         "getterModel" : {
-          "returnType" : "AssetStatus",
+          "returnType" : "ConfigurationErrorDetails",
           "documentation" : null
         },
         "http" : {
@@ -24135,11 +23485,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetStatus",
+          "marshallLocationName" : "error",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetStatus",
+          "unmarshallLocationName" : "error",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24151,49 +23501,49 @@
         "mapModel" : null,
         "marshallingTargetClass" : "StructuredPojo",
         "marshallingType" : "STRUCTURED",
-        "name" : "AssetStatus",
+        "name" : "Error",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setAssetStatus",
+        "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
+        "setterMethodName" : "setError",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
+          "variableDeclarationType" : "ConfigurationErrorDetails",
+          "variableName" : "error",
+          "variableType" : "ConfigurationErrorDetails",
           "documentation" : "",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
+          "simpleType" : "ConfigurationErrorDetails",
+          "variableSetterType" : "ConfigurationErrorDetails"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
-          "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
+          "variableDeclarationType" : "ConfigurationErrorDetails",
+          "variableName" : "error",
+          "variableType" : "ConfigurationErrorDetails",
+          "documentation" : "<p>Contains associated error information, if any.</p>",
+          "simpleType" : "ConfigurationErrorDetails",
+          "variableSetterType" : "ConfigurationErrorDetails"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetArn" : {
-          "c2jName" : "assetArn",
-          "c2jShape" : "ARN",
+        "Error" : {
+          "c2jName" : "error",
+          "c2jShape" : "ConfigurationErrorDetails",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>Contains associated error information, if any.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "getterMethodName" : "getAssetArn",
+          "fluentSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withError",
+          "getterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@return Contains associated error information, if any.*/",
+          "getterMethodName" : "getError",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "ConfigurationErrorDetails",
             "documentation" : null
           },
           "http" : {
@@ -24206,11 +23556,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetArn",
+            "marshallLocationName" : "error",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetArn",
+            "unmarshallLocationName" : "error",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -24220,48 +23570,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetArn",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Error",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "setterMethodName" : "setAssetArn",
+          "setterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.*/",
+          "setterMethodName" : "setError",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetArn",
-            "variableType" : "String",
+            "variableDeclarationType" : "ConfigurationErrorDetails",
+            "variableName" : "error",
+            "variableType" : "ConfigurationErrorDetails",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "ConfigurationErrorDetails",
+            "variableSetterType" : "ConfigurationErrorDetails"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>Contains associated error information, if any.</p>\n@param error Contains associated error information, if any.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetArn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
+            "variableDeclarationType" : "ConfigurationErrorDetails",
+            "variableName" : "error",
+            "variableType" : "ConfigurationErrorDetails",
+            "documentation" : "<p>Contains associated error information, if any.</p>",
+            "simpleType" : "ConfigurationErrorDetails",
+            "variableSetterType" : "ConfigurationErrorDetails"
+          },
           "xmlNameSpaceUri" : null
         },
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "State" : {
+          "c2jName" : "state",
+          "c2jShape" : "ConfigurationState",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
+          "documentation" : "<p>The current state of the configuration.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
-          "getterMethodName" : "getAssetId",
+          "enumType" : "ConfigurationState",
+          "fluentSetterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
+          "fluentSetterMethodName" : "withState",
+          "getterDocumentation" : "/**<p>The current state of the configuration.</p>\n@return The current state of the configuration.\n@see ConfigurationState*/",
+          "getterMethodName" : "getState",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -24276,11 +23626,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetId",
+            "marshallLocationName" : "state",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
+            "unmarshallLocationName" : "state",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -24292,14 +23642,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "State",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@see ConfigurationState*/",
+          "setterMethodName" : "setState",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "state",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -24309,94 +23659,24 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The current state of the configuration.</p>\n@param state The current state of the configuration.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ConfigurationState*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "state",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
+            "documentation" : "<p>The current state of the configuration.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "AssetStatus" : {
-          "c2jName" : "assetStatus",
-          "c2jShape" : "AssetStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetStatus",
-          "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getAssetStatus",
-          "getterModel" : {
-            "returnType" : "AssetStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetStatus",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetStatus",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetStatus",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setAssetStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "assetStatus",
-            "variableType" : "AssetStatus",
-            "documentation" : "",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "assetStatus",
-            "variableType" : "AssetStatus",
-            "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetId", "assetArn", "assetStatus" ],
-      "shapeName" : "CreateAssetResult",
+      "required" : [ "state" ],
+      "shapeName" : "ConfigurationStatus",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -24405,17 +23685,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateAssetResult",
-        "variableName" : "createAssetResult",
-        "variableType" : "CreateAssetResult",
+        "variableDeclarationType" : "ConfigurationStatus",
+        "variableName" : "configurationStatus",
+        "variableType" : "ConfigurationStatus",
         "documentation" : null,
-        "simpleType" : "CreateAssetResult",
-        "variableSetterType" : "CreateAssetResult"
+        "simpleType" : "ConfigurationStatus",
+        "variableSetterType" : "ConfigurationStatus"
       },
       "wrapper" : false
     },
-    "CreateDashboardRequest" : {
-      "c2jName" : "CreateDashboardRequest",
+    "ConflictingOperationException" : {
+      "c2jName" : "ConflictingOperationException",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -24423,35 +23703,28 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateDashboardRequest",
+      "errorCode" : "ConflictingOperationException",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.ConflictingOperationException",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreateDashboard",
-        "locationName" : null,
-        "requestUri" : "/dashboards",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "projectId",
-        "c2jShape" : "ID",
+        "c2jName" : "resourceId",
+        "c2jShape" : "ResourceId",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
+        "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectId",
-        "getterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@return The ID of the project in which to create the dashboard.*/",
-        "getterMethodName" : "getProjectId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withResourceId",
+        "getterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@return The ID of the resource that conflicts with this operation.*/",
+        "getterMethodName" : "getResourceId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -24466,11 +23739,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "projectId",
+          "marshallLocationName" : "resourceId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectId",
+          "unmarshallLocationName" : "resourceId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24482,14 +23755,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectId",
+        "name" : "ResourceId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.*/",
-        "setterMethodName" : "setProjectId",
+        "setterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.*/",
+        "setterMethodName" : "setResourceId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "resourceId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -24499,28 +23772,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "resourceId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
+          "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "dashboardName",
-        "c2jShape" : "Name",
+        "c2jName" : "resourceArn",
+        "c2jShape" : "ResourceArn",
         "deprecated" : false,
-        "documentation" : "<p>A friendly name for the dashboard.</p>",
+        "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardName",
-        "getterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@return A friendly name for the dashboard.*/",
-        "getterMethodName" : "getDashboardName",
+        "fluentSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withResourceArn",
+        "getterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@return The ARN of the resource that conflicts with this operation.*/",
+        "getterMethodName" : "getResourceArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -24535,11 +23808,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dashboardName",
+          "marshallLocationName" : "resourceArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dashboardName",
+          "unmarshallLocationName" : "resourceArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24551,14 +23824,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DashboardName",
+        "name" : "ResourceArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.*/",
-        "setterMethodName" : "setDashboardName",
+        "setterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.*/",
+        "setterMethodName" : "setResourceArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardName",
+          "variableName" : "resourceArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -24568,30 +23841,219 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardName",
+          "variableName" : "resourceArn",
           "variableType" : "String",
-          "documentation" : "<p>A friendly name for the dashboard.</p>",
+          "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "dashboardDescription",
-        "c2jShape" : "Description",
+      } ],
+      "membersAsMap" : {
+        "ResourceArn" : {
+          "c2jName" : "resourceArn",
+          "c2jShape" : "ResourceArn",
+          "deprecated" : false,
+          "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withResourceArn",
+          "getterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@return The ARN of the resource that conflicts with this operation.*/",
+          "getterMethodName" : "getResourceArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "resourceArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "resourceArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ResourceArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.*/",
+          "setterMethodName" : "setResourceArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ARN of the resource that conflicts with this operation.</p>\n@param resourceArn The ARN of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceArn",
+            "variableType" : "String",
+            "documentation" : "<p>The ARN of the resource that conflicts with this operation.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ResourceId" : {
+          "c2jName" : "resourceId",
+          "c2jShape" : "ResourceId",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withResourceId",
+          "getterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@return The ID of the resource that conflicts with this operation.*/",
+          "getterMethodName" : "getResourceId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "resourceId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "resourceId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ResourceId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.*/",
+          "setterMethodName" : "setResourceId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the resource that conflicts with this operation.</p>\n@param resourceId The ID of the resource that conflicts with this operation.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the resource that conflicts with this operation.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "message", "resourceId", "resourceArn" ],
+      "shapeName" : "ConflictingOperationException",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "ConflictingOperationException",
+        "variableName" : "conflictingOperationException",
+        "variableType" : "ConflictingOperationException",
+        "documentation" : null,
+        "simpleType" : "ConflictingOperationException",
+        "variableSetterType" : "ConflictingOperationException"
+      },
+      "wrapper" : false
+    },
+    "CreateAccessPolicyRequest" : {
+      "c2jName" : "CreateAccessPolicyRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAccessPolicyRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "CreateAccessPolicy",
+        "locationName" : null,
+        "requestUri" : "/access-policies",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "accessPolicyIdentity",
+        "c2jShape" : "Identity",
         "deprecated" : false,
-        "documentation" : "<p>A description for the dashboard.</p>",
+        "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardDescription",
-        "getterDocumentation" : "/**<p>A description for the dashboard.</p>\n@return A description for the dashboard.*/",
-        "getterMethodName" : "getDashboardDescription",
+        "fluentSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyIdentity",
+        "getterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@return The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
+        "getterMethodName" : "getAccessPolicyIdentity",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "Identity",
           "documentation" : null
         },
         "http" : {
@@ -24604,11 +24066,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dashboardDescription",
+          "marshallLocationName" : "accessPolicyIdentity",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dashboardDescription",
+          "unmarshallLocationName" : "accessPolicyIdentity",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24618,49 +24080,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "DashboardDescription",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AccessPolicyIdentity",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.*/",
-        "setterMethodName" : "setDashboardDescription",
+        "setterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
+        "setterMethodName" : "setAccessPolicyIdentity",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardDescription",
-          "variableType" : "String",
+          "variableDeclarationType" : "Identity",
+          "variableName" : "accessPolicyIdentity",
+          "variableType" : "Identity",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Identity",
+          "variableSetterType" : "Identity"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardDescription",
-          "variableType" : "String",
-          "documentation" : "<p>A description for the dashboard.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "Identity",
+          "variableName" : "accessPolicyIdentity",
+          "variableType" : "Identity",
+          "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
+          "simpleType" : "Identity",
+          "variableSetterType" : "Identity"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "dashboardDefinition",
-        "c2jShape" : "DashboardDefinition",
+        "c2jName" : "accessPolicyResource",
+        "c2jShape" : "Resource",
         "deprecated" : false,
-        "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardDefinition",
-        "getterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getDashboardDefinition",
+        "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyResource",
+        "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@return The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
+        "getterMethodName" : "getAccessPolicyResource",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "Resource",
           "documentation" : null
         },
         "http" : {
@@ -24673,11 +24135,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dashboardDefinition",
+          "marshallLocationName" : "accessPolicyResource",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dashboardDefinition",
+          "unmarshallLocationName" : "accessPolicyResource",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -24687,40 +24149,109 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "DashboardDefinition",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AccessPolicyResource",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setDashboardDefinition",
+        "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
+        "setterMethodName" : "setAccessPolicyResource",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardDefinition",
-          "variableType" : "String",
+          "variableDeclarationType" : "Resource",
+          "variableName" : "accessPolicyResource",
+          "variableType" : "Resource",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Resource",
+          "variableSetterType" : "Resource"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardDefinition",
-          "variableType" : "String",
-          "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "Resource",
+          "variableName" : "accessPolicyResource",
+          "variableType" : "Resource",
+          "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
+          "simpleType" : "Resource",
+          "variableSetterType" : "Resource"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
+        "c2jName" : "accessPolicyPermission",
+        "c2jShape" : "Permission",
+        "deprecated" : false,
+        "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "Permission",
+        "fluentSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+        "fluentSetterMethodName" : "withAccessPolicyPermission",
+        "getterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+        "getterMethodName" : "getAccessPolicyPermission",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyPermission",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyPermission",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyPermission",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+        "setterMethodName" : "setAccessPolicyPermission",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyPermission",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyPermission",
+          "variableType" : "String",
+          "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
+        "deprecated" : false,
         "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
@@ -24790,12 +24321,12 @@
         "c2jName" : "tags",
         "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "getterMethodName" : "getTags",
         "getterModel" : {
           "returnType" : "java.util.Map<String,String>",
@@ -24913,7 +24444,7 @@
         "marshallingType" : "MAP",
         "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
@@ -24928,102 +24459,32 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.Map<String,String>",
           "variableName" : "tags",
           "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "Map<String,String>",
           "variableSetterType" : "java.util.Map<String,String>"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "DashboardDefinition" : {
-          "c2jName" : "dashboardDefinition",
-          "c2jShape" : "DashboardDefinition",
+        "AccessPolicyIdentity" : {
+          "c2jName" : "accessPolicyIdentity",
+          "c2jShape" : "Identity",
           "deprecated" : false,
-          "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardDefinition",
-          "getterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getDashboardDefinition",
+          "fluentSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyIdentity",
+          "getterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@return The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
+          "getterMethodName" : "getAccessPolicyIdentity",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "Identity",
             "documentation" : null
           },
           "http" : {
@@ -25036,11 +24497,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dashboardDefinition",
+            "marshallLocationName" : "accessPolicyIdentity",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardDefinition",
+            "unmarshallLocationName" : "accessPolicyIdentity",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -25050,48 +24511,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "DashboardDefinition",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AccessPolicyIdentity",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setDashboardDefinition",
+          "setterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.*/",
+          "setterMethodName" : "setAccessPolicyIdentity",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardDefinition",
-            "variableType" : "String",
+            "variableDeclarationType" : "Identity",
+            "variableName" : "accessPolicyIdentity",
+            "variableType" : "Identity",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Identity",
+            "variableSetterType" : "Identity"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>\n@param accessPolicyIdentity The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardDefinition",
-            "variableType" : "String",
-            "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "Identity",
+            "variableName" : "accessPolicyIdentity",
+            "variableType" : "Identity",
+            "documentation" : "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
+            "simpleType" : "Identity",
+            "variableSetterType" : "Identity"
           },
           "xmlNameSpaceUri" : null
         },
-        "DashboardDescription" : {
-          "c2jName" : "dashboardDescription",
-          "c2jShape" : "Description",
+        "AccessPolicyPermission" : {
+          "c2jName" : "accessPolicyPermission",
+          "c2jShape" : "Permission",
           "deprecated" : false,
-          "documentation" : "<p>A description for the dashboard.</p>",
+          "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardDescription",
-          "getterDocumentation" : "/**<p>A description for the dashboard.</p>\n@return A description for the dashboard.*/",
-          "getterMethodName" : "getDashboardDescription",
+          "enumType" : "Permission",
+          "fluentSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+          "fluentSetterMethodName" : "withAccessPolicyPermission",
+          "getterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+          "getterMethodName" : "getAccessPolicyPermission",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -25106,11 +24567,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dashboardDescription",
+            "marshallLocationName" : "accessPolicyPermission",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardDescription",
+            "unmarshallLocationName" : "accessPolicyPermission",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -25122,14 +24583,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DashboardDescription",
+          "name" : "AccessPolicyPermission",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.*/",
-          "setterMethodName" : "setDashboardDescription",
+          "setterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+          "setterMethodName" : "setAccessPolicyPermission",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardDescription",
+            "variableName" : "accessPolicyPermission",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -25139,31 +24600,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardDescription",
+            "variableName" : "accessPolicyPermission",
             "variableType" : "String",
-            "documentation" : "<p>A description for the dashboard.</p>",
+            "documentation" : "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "DashboardName" : {
-          "c2jName" : "dashboardName",
-          "c2jShape" : "Name",
+        "AccessPolicyResource" : {
+          "c2jName" : "accessPolicyResource",
+          "c2jShape" : "Resource",
           "deprecated" : false,
-          "documentation" : "<p>A friendly name for the dashboard.</p>",
+          "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardName",
-          "getterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@return A friendly name for the dashboard.*/",
-          "getterMethodName" : "getDashboardName",
+          "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyResource",
+          "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@return The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
+          "getterMethodName" : "getAccessPolicyResource",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "Resource",
             "documentation" : null
           },
           "http" : {
@@ -25176,11 +24637,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dashboardName",
+            "marshallLocationName" : "accessPolicyResource",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardName",
+            "unmarshallLocationName" : "accessPolicyResource",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -25190,48 +24651,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "DashboardName",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AccessPolicyResource",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.*/",
-          "setterMethodName" : "setDashboardName",
+          "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.*/",
+          "setterMethodName" : "setAccessPolicyResource",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardName",
-            "variableType" : "String",
+            "variableDeclarationType" : "Resource",
+            "variableName" : "accessPolicyResource",
+            "variableType" : "Resource",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Resource",
+            "variableSetterType" : "Resource"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardName",
-            "variableType" : "String",
-            "documentation" : "<p>A friendly name for the dashboard.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "Resource",
+            "variableName" : "accessPolicyResource",
+            "variableType" : "Resource",
+            "documentation" : "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
+            "simpleType" : "Resource",
+            "variableSetterType" : "Resource"
           },
           "xmlNameSpaceUri" : null
         },
-        "ProjectId" : {
-          "c2jName" : "projectId",
-          "c2jShape" : "ID",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectId",
-          "getterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@return The ID of the project in which to create the dashboard.*/",
-          "getterMethodName" : "getProjectId",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -25246,14 +24707,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "projectId",
+            "marshallLocationName" : "clientToken",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectId",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -25262,14 +24723,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ProjectId",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.*/",
-          "setterMethodName" : "setProjectId",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectId",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -25279,13 +24740,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectId",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -25295,12 +24756,12 @@
           "c2jName" : "tags",
           "c2jShape" : "TagMap",
           "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
           "getterMethodName" : "getTags",
           "getterModel" : {
             "returnType" : "java.util.Map<String,String>",
@@ -25418,7 +24879,7 @@
           "marshallingType" : "MAP",
           "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
           "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
@@ -25433,13 +24894,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.Map<String,String>",
             "variableName" : "tags",
             "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the access policy. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "Map<String,String>",
             "variableSetterType" : "java.util.Map<String,String>"
           },
@@ -25449,24 +24910,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "projectId", "dashboardName", "dashboardDefinition" ],
-      "shapeName" : "CreateDashboardRequest",
+      "required" : [ "accessPolicyIdentity", "accessPolicyResource", "accessPolicyPermission" ],
+      "shapeName" : "CreateAccessPolicyRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateDashboardRequest",
-        "variableName" : "createDashboardRequest",
-        "variableType" : "CreateDashboardRequest",
+        "variableDeclarationType" : "CreateAccessPolicyRequest",
+        "variableName" : "createAccessPolicyRequest",
+        "variableType" : "CreateAccessPolicyRequest",
         "documentation" : null,
-        "simpleType" : "CreateDashboardRequest",
-        "variableSetterType" : "CreateDashboardRequest"
+        "simpleType" : "CreateAccessPolicyRequest",
+        "variableSetterType" : "CreateAccessPolicyRequest"
       },
       "wrapper" : false
     },
-    "CreateDashboardResult" : {
-      "c2jName" : "CreateDashboardResponse",
+    "CreateAccessPolicyResult" : {
+      "c2jName" : "CreateAccessPolicyResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -25478,7 +24939,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateDashboardResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAccessPolicyResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -25486,16 +24947,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "dashboardId",
+        "c2jName" : "accessPolicyId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the dashboard.</p>",
+        "documentation" : "<p>The ID of the access policy.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardId",
-        "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
-        "getterMethodName" : "getDashboardId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyId",
+        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+        "getterMethodName" : "getAccessPolicyId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -25510,11 +24971,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dashboardId",
+          "marshallLocationName" : "accessPolicyId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dashboardId",
+          "unmarshallLocationName" : "accessPolicyId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -25526,14 +24987,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DashboardId",
+        "name" : "AccessPolicyId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.*/",
-        "setterMethodName" : "setDashboardId",
+        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+        "setterMethodName" : "setAccessPolicyId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardId",
+          "variableName" : "accessPolicyId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -25543,28 +25004,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardId",
+          "variableName" : "accessPolicyId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the dashboard.</p>",
+          "documentation" : "<p>The ID of the access policy.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "dashboardArn",
+        "c2jName" : "accessPolicyArn",
         "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
-        "getterMethodName" : "getDashboardArn",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+        "getterMethodName" : "getAccessPolicyArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -25579,11 +25040,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "dashboardArn",
+          "marshallLocationName" : "accessPolicyArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "dashboardArn",
+          "unmarshallLocationName" : "accessPolicyArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -25595,14 +25056,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "DashboardArn",
+        "name" : "AccessPolicyArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
-        "setterMethodName" : "setDashboardArn",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+        "setterMethodName" : "setAccessPolicyArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardArn",
+          "variableName" : "accessPolicyArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -25612,30 +25073,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "dashboardArn",
+          "variableName" : "accessPolicyArn",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "DashboardArn" : {
-          "c2jName" : "dashboardArn",
+        "AccessPolicyArn" : {
+          "c2jName" : "accessPolicyArn",
           "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
-          "getterMethodName" : "getDashboardArn",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+          "getterMethodName" : "getAccessPolicyArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -25650,11 +25111,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dashboardArn",
+            "marshallLocationName" : "accessPolicyArn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardArn",
+            "unmarshallLocationName" : "accessPolicyArn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -25666,14 +25127,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DashboardArn",
+          "name" : "AccessPolicyArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
-          "setterMethodName" : "setDashboardArn",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+          "setterMethodName" : "setAccessPolicyArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardArn",
+            "variableName" : "accessPolicyArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -25683,29 +25144,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardArn",
+            "variableName" : "accessPolicyArn",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "DashboardId" : {
-          "c2jName" : "dashboardId",
+        "AccessPolicyId" : {
+          "c2jName" : "accessPolicyId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the dashboard.</p>",
+          "documentation" : "<p>The ID of the access policy.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardId",
-          "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
-          "getterMethodName" : "getDashboardId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyId",
+          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+          "getterMethodName" : "getAccessPolicyId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -25720,11 +25181,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "dashboardId",
+            "marshallLocationName" : "accessPolicyId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardId",
+            "unmarshallLocationName" : "accessPolicyId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -25736,14 +25197,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "DashboardId",
+          "name" : "AccessPolicyId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.*/",
-          "setterMethodName" : "setDashboardId",
+          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+          "setterMethodName" : "setAccessPolicyId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardId",
+            "variableName" : "accessPolicyId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -25753,13 +25214,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "dashboardId",
+            "variableName" : "accessPolicyId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the dashboard.</p>",
+            "documentation" : "<p>The ID of the access policy.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -25769,8 +25230,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "dashboardId", "dashboardArn" ],
-      "shapeName" : "CreateDashboardResult",
+      "required" : [ "accessPolicyId", "accessPolicyArn" ],
+      "shapeName" : "CreateAccessPolicyResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -25779,17 +25240,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateDashboardResult",
-        "variableName" : "createDashboardResult",
-        "variableType" : "CreateDashboardResult",
+        "variableDeclarationType" : "CreateAccessPolicyResult",
+        "variableName" : "createAccessPolicyResult",
+        "variableType" : "CreateAccessPolicyResult",
         "documentation" : null,
-        "simpleType" : "CreateDashboardResult",
-        "variableSetterType" : "CreateDashboardResult"
+        "simpleType" : "CreateAccessPolicyResult",
+        "variableSetterType" : "CreateAccessPolicyResult"
       },
       "wrapper" : false
     },
-    "CreateGatewayRequest" : {
-      "c2jName" : "CreateGatewayRequest",
+    "CreateAssetModelRequest" : {
+      "c2jName" : "CreateAssetModelRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -25801,31 +25262,31 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateGatewayRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAssetModelRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : {
-        "action" : "CreateGateway",
+        "action" : "CreateAssetModel",
         "locationName" : null,
-        "requestUri" : "/20200301/gateways",
+        "requestUri" : "/asset-models",
         "target" : null,
         "verb" : "POST",
         "xmlNameSpaceUri" : null
       },
       "members" : [ {
-        "c2jName" : "gatewayName",
+        "c2jName" : "assetModelName",
         "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>A unique, friendly name for the gateway.</p>",
+        "documentation" : "<p>A unique, friendly name for the asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGatewayName",
-        "getterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@return A unique, friendly name for the gateway.*/",
-        "getterMethodName" : "getGatewayName",
+        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelName",
+        "getterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@return A unique, friendly name for the asset model.*/",
+        "getterMethodName" : "getAssetModelName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -25840,11 +25301,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "gatewayName",
+          "marshallLocationName" : "assetModelName",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "gatewayName",
+          "unmarshallLocationName" : "assetModelName",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -25856,14 +25317,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "GatewayName",
+        "name" : "AssetModelName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.*/",
-        "setterMethodName" : "setGatewayName",
+        "setterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.*/",
+        "setterMethodName" : "setAssetModelName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "gatewayName",
+          "variableName" : "assetModelName",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -25873,30 +25334,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "gatewayName",
+          "variableName" : "assetModelName",
           "variableType" : "String",
-          "documentation" : "<p>A unique, friendly name for the gateway.</p>",
+          "documentation" : "<p>A unique, friendly name for the asset model.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "gatewayPlatform",
-        "c2jShape" : "GatewayPlatform",
+        "c2jName" : "assetModelDescription",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
+        "documentation" : "<p>A description for the asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGatewayPlatform",
-        "getterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@return The gateway's platform. You can only specify one platform in a gateway.*/",
-        "getterMethodName" : "getGatewayPlatform",
+        "fluentSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelDescription",
+        "getterDocumentation" : "/**<p>A description for the asset model.</p>\n@return A description for the asset model.*/",
+        "getterMethodName" : "getAssetModelDescription",
         "getterModel" : {
-          "returnType" : "GatewayPlatform",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -25909,11 +25370,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "gatewayPlatform",
+          "marshallLocationName" : "assetModelDescription",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "gatewayPlatform",
+          "unmarshallLocationName" : "assetModelDescription",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -25923,49 +25384,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "GatewayPlatform",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelDescription",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.*/",
-        "setterMethodName" : "setGatewayPlatform",
+        "setterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.*/",
+        "setterMethodName" : "setAssetModelDescription",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "GatewayPlatform",
-          "variableName" : "gatewayPlatform",
-          "variableType" : "GatewayPlatform",
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelDescription",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "GatewayPlatform",
-          "variableSetterType" : "GatewayPlatform"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "GatewayPlatform",
-          "variableName" : "gatewayPlatform",
-          "variableType" : "GatewayPlatform",
-          "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
-          "simpleType" : "GatewayPlatform",
-          "variableSetterType" : "GatewayPlatform"
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelDescription",
+          "variableType" : "String",
+          "documentation" : "<p>A description for the asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "tags",
-        "c2jShape" : "TagMap",
+        "c2jName" : "assetModelProperties",
+        "c2jShape" : "AssetModelPropertyDefinitions",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getTags",
+        "fluentSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelProperties",
+        "getterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getAssetModelProperties",
         "getterModel" : {
-          "returnType" : "java.util.Map<String,String>",
+          "returnType" : "java.util.List<AssetModelPropertyDefinition>",
           "documentation" : null
         },
         "http" : {
@@ -25978,39 +25439,33 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "tags",
+          "marshallLocationName" : "assetModelProperties",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "tags",
+          "unmarshallLocationName" : "assetModelProperties",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : true,
-        "mapModel" : {
-          "implType" : "java.util.HashMap",
-          "interfaceType" : "java.util.Map",
-          "keyLocationName" : "key",
-          "keyModel" : null,
-          "keyType" : "String",
-          "valueLocationName" : "value",
-          "valueModel" : {
-            "c2jName" : "value",
-            "c2jShape" : "TagValue",
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelPropertyDefinition",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
             "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withValue",
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
             "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getValue",
+            "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "String",
+              "returnType" : "AssetModelPropertyDefinition",
               "documentation" : null
             },
             "http" : {
@@ -26023,11 +25478,11 @@
               "isStreaming" : false,
               "location" : null,
               "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "value",
+              "marshallLocationName" : "member",
               "queryString" : false,
               "requiresLength" : false,
               "statusCode" : false,
-              "unmarshallLocationName" : "value",
+              "unmarshallLocationName" : "member",
               "uri" : false
             },
             "idempotencyToken" : false,
@@ -26037,424 +25492,247 @@
             "listModel" : null,
             "map" : false,
             "mapModel" : null,
-            "marshallingTargetClass" : "String",
-            "marshallingType" : "STRING",
-            "name" : "Value",
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
             "sensitive" : false,
-            "setterDocumentation" : "/**\n@param value */",
-            "setterMethodName" : "setValue",
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
+              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelPropertyDefinition",
               "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
+              "simpleType" : "AssetModelPropertyDefinition",
+              "variableSetterType" : "AssetModelPropertyDefinition"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
-            "simple" : true,
+            "simple" : false,
             "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "String",
-              "variableName" : "value",
-              "variableType" : "String",
+              "variableDeclarationType" : "AssetModelPropertyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelPropertyDefinition",
               "documentation" : "",
-              "simpleType" : "String",
-              "variableSetterType" : "String"
+              "simpleType" : "AssetModelPropertyDefinition",
+              "variableSetterType" : "AssetModelPropertyDefinition"
             },
             "xmlNameSpaceUri" : null
           },
-          "valueType" : "String",
-          "entryType" : "Map.Entry<String, String>",
-          "keySimple" : true,
-          "templateImplType" : "java.util.HashMap<String,String>",
-          "templateType" : "java.util.Map<String,String>",
-          "valueList" : false,
-          "valueSimple" : true
+          "memberLocationName" : null,
+          "memberType" : "AssetModelPropertyDefinition",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelPropertyDefinition",
+          "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
+          "templateType" : "java.util.List<AssetModelPropertyDefinition>"
         },
-        "marshallingTargetClass" : "Map",
-        "marshallingType" : "MAP",
-        "name" : "Tags",
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelProperties",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setTags",
+        "setterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setAssetModelProperties",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
+          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+          "variableName" : "assetModelProperties",
+          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
           "documentation" : "",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
+          "simpleType" : "List<AssetModelPropertyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Map<String,String>",
-          "variableName" : "tags",
-          "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "simpleType" : "Map<String,String>",
-          "variableSetterType" : "java.util.Map<String,String>"
+          "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+          "variableName" : "assetModelProperties",
+          "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+          "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "List<AssetModelPropertyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "GatewayName" : {
-          "c2jName" : "gatewayName",
-          "c2jShape" : "Name",
-          "deprecated" : false,
-          "documentation" : "<p>A unique, friendly name for the gateway.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGatewayName",
-          "getterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@return A unique, friendly name for the gateway.*/",
-          "getterMethodName" : "getGatewayName",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "gatewayName",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "gatewayName",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "GatewayName",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.*/",
-          "setterMethodName" : "setGatewayName",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "gatewayName",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "gatewayName",
-            "variableType" : "String",
-            "documentation" : "<p>A unique, friendly name for the gateway.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelHierarchies",
+        "c2jShape" : "AssetModelHierarchyDefinitions",
+        "deprecated" : false,
+        "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelHierarchies",
+        "getterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getAssetModelHierarchies",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelHierarchyDefinition>",
+          "documentation" : null
         },
-        "GatewayPlatform" : {
-          "c2jName" : "gatewayPlatform",
-          "c2jShape" : "GatewayPlatform",
-          "deprecated" : false,
-          "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGatewayPlatform",
-          "getterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@return The gateway's platform. You can only specify one platform in a gateway.*/",
-          "getterMethodName" : "getGatewayPlatform",
-          "getterModel" : {
-            "returnType" : "GatewayPlatform",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "gatewayPlatform",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "gatewayPlatform",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "GatewayPlatform",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.*/",
-          "setterMethodName" : "setGatewayPlatform",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "GatewayPlatform",
-            "variableName" : "gatewayPlatform",
-            "variableType" : "GatewayPlatform",
-            "documentation" : "",
-            "simpleType" : "GatewayPlatform",
-            "variableSetterType" : "GatewayPlatform"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "GatewayPlatform",
-            "variableName" : "gatewayPlatform",
-            "variableType" : "GatewayPlatform",
-            "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
-            "simpleType" : "GatewayPlatform",
-            "variableSetterType" : "GatewayPlatform"
-          },
-          "xmlNameSpaceUri" : null
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelHierarchies",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelHierarchies",
+          "uri" : false
         },
-        "Tags" : {
-          "c2jName" : "tags",
-          "c2jShape" : "TagMap",
-          "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getTags",
-          "getterModel" : {
-            "returnType" : "java.util.Map<String,String>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "tags",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "tags",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : true,
-          "mapModel" : {
-            "implType" : "java.util.HashMap",
-            "interfaceType" : "java.util.Map",
-            "keyLocationName" : "key",
-            "keyModel" : null,
-            "keyType" : "String",
-            "valueLocationName" : "value",
-            "valueModel" : {
-              "c2jName" : "value",
-              "c2jShape" : "TagValue",
-              "deprecated" : false,
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelHierarchyDefinition",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelHierarchyDefinition",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelHierarchyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelHierarchyDefinition",
               "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withValue",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getValue",
-              "getterModel" : {
-                "returnType" : "String",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "value",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "value",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "String",
-              "marshallingType" : "STRING",
-              "name" : "Value",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param value */",
-              "setterMethodName" : "setValue",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : true,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "String",
-                "variableName" : "value",
-                "variableType" : "String",
-                "documentation" : "",
-                "simpleType" : "String",
-                "variableSetterType" : "String"
-              },
-              "xmlNameSpaceUri" : null
+              "simpleType" : "AssetModelHierarchyDefinition",
+              "variableSetterType" : "AssetModelHierarchyDefinition"
             },
-            "valueType" : "String",
-            "entryType" : "Map.Entry<String, String>",
-            "keySimple" : true,
-            "templateImplType" : "java.util.HashMap<String,String>",
-            "templateType" : "java.util.Map<String,String>",
-            "valueList" : false,
-            "valueSimple" : true
-          },
-          "marshallingTargetClass" : "Map",
-          "marshallingType" : "MAP",
-          "name" : "Tags",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setTags",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelHierarchyDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelHierarchyDefinition",
+              "documentation" : "",
+              "simpleType" : "AssetModelHierarchyDefinition",
+              "variableSetterType" : "AssetModelHierarchyDefinition"
+            },
+            "xmlNameSpaceUri" : null
           },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
+          "memberLocationName" : null,
+          "memberType" : "AssetModelHierarchyDefinition",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
           "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Map<String,String>",
-            "variableName" : "tags",
-            "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-            "simpleType" : "Map<String,String>",
-            "variableSetterType" : "java.util.Map<String,String>"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "gatewayName", "gatewayPlatform" ],
-      "shapeName" : "CreateGatewayRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CreateGatewayRequest",
-        "variableName" : "createGatewayRequest",
-        "variableType" : "CreateGatewayRequest",
-        "documentation" : null,
-        "simpleType" : "CreateGatewayRequest",
-        "variableSetterType" : "CreateGatewayRequest"
-      },
-      "wrapper" : false
-    },
-    "CreateGatewayResult" : {
-      "c2jName" : "CreateGatewayResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateGatewayResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "gatewayId",
-        "c2jShape" : "ID",
+          "simpleType" : "AssetModelHierarchyDefinition",
+          "templateImplType" : "java.util.ArrayList<AssetModelHierarchyDefinition>",
+          "templateType" : "java.util.List<AssetModelHierarchyDefinition>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelHierarchies",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setAssetModelHierarchies",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
+          "variableName" : "assetModelHierarchies",
+          "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelHierarchyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
+          "variableName" : "assetModelHierarchies",
+          "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
+          "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "List<AssetModelHierarchyDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelCompositeModels",
+        "c2jShape" : "AssetModelCompositeModelDefinitions",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+        "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGatewayId",
-        "getterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-        "getterMethodName" : "getGatewayId",
+        "fluentSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelCompositeModels",
+        "getterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@return The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+        "getterMethodName" : "getAssetModelCompositeModels",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.List<AssetModelCompositeModelDefinition>",
           "documentation" : null
         },
         "http" : {
@@ -26467,61 +25745,145 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "gatewayId",
+          "marshallLocationName" : "assetModelCompositeModels",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "gatewayId",
+          "unmarshallLocationName" : "assetModelCompositeModels",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelCompositeModelDefinition",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelCompositeModelDefinition",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModelDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModelDefinition",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModelDefinition",
+              "variableSetterType" : "AssetModelCompositeModelDefinition"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModelDefinition",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModelDefinition",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModelDefinition",
+              "variableSetterType" : "AssetModelCompositeModelDefinition"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelCompositeModelDefinition",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelCompositeModelDefinition",
+          "templateImplType" : "java.util.ArrayList<AssetModelCompositeModelDefinition>",
+          "templateType" : "java.util.List<AssetModelCompositeModelDefinition>"
+        },
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "GatewayId",
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelCompositeModels",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-        "setterMethodName" : "setGatewayId",
+        "setterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+        "setterMethodName" : "setAssetModelCompositeModels",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "gatewayId",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModelDefinition>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModelDefinition>",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "List<AssetModelCompositeModelDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModelDefinition>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "gatewayId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModelDefinition>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModelDefinition>",
+          "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+          "simpleType" : "List<AssetModelCompositeModelDefinition>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModelDefinition>"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "gatewayArn",
-        "c2jShape" : "ARN",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGatewayArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
-        "getterMethodName" : "getGatewayArn",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -26536,14 +25898,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "gatewayArn",
+          "marshallLocationName" : "clientToken",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "gatewayArn",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -26552,14 +25914,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "GatewayArn",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
-        "setterMethodName" : "setGatewayArn",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "gatewayArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -26569,30 +25931,337 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "gatewayArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "GatewayArn" : {
-          "c2jName" : "gatewayArn",
-          "c2jShape" : "ARN",
-          "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
+      }, {
+        "c2jName" : "tags",
+        "c2jShape" : "TagMap",
+        "deprecated" : false,
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTags",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getTags",
+        "getterModel" : {
+          "returnType" : "java.util.Map<String,String>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "tags",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "tags",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : true,
+        "mapModel" : {
+          "implType" : "java.util.HashMap",
+          "interfaceType" : "java.util.Map",
+          "keyLocationName" : "key",
+          "keyModel" : null,
+          "keyType" : "String",
+          "valueLocationName" : "value",
+          "valueModel" : {
+            "c2jName" : "value",
+            "c2jShape" : "TagValue",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withValue",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getValue",
+            "getterModel" : {
+              "returnType" : "String",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "value",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "value",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "String",
+            "marshallingType" : "STRING",
+            "name" : "Value",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param value */",
+            "setterMethodName" : "setValue",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : true,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "valueType" : "String",
+          "entryType" : "Map.Entry<String, String>",
+          "keySimple" : true,
+          "templateImplType" : "java.util.HashMap<String,String>",
+          "templateType" : "java.util.Map<String,String>",
+          "valueList" : false,
+          "valueSimple" : true
+        },
+        "marshallingTargetClass" : "Map",
+        "marshallingType" : "MAP",
+        "name" : "Tags",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setTags",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetModelCompositeModels" : {
+          "c2jName" : "assetModelCompositeModels",
+          "c2jShape" : "AssetModelCompositeModelDefinitions",
+          "deprecated" : false,
+          "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGatewayArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
-          "getterMethodName" : "getGatewayArn",
+          "fluentSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelCompositeModels",
+          "getterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@return The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+          "getterMethodName" : "getAssetModelCompositeModels",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelCompositeModelDefinition>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelCompositeModels",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelCompositeModels",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelCompositeModelDefinition",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelCompositeModelDefinition",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModelDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModelDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModelDefinition",
+                "variableSetterType" : "AssetModelCompositeModelDefinition"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModelDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModelDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModelDefinition",
+                "variableSetterType" : "AssetModelCompositeModelDefinition"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelCompositeModelDefinition",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelCompositeModelDefinition",
+            "templateImplType" : "java.util.ArrayList<AssetModelCompositeModelDefinition>",
+            "templateType" : "java.util.List<AssetModelCompositeModelDefinition>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelCompositeModels",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+          "setterMethodName" : "setAssetModelCompositeModels",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModelDefinition>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModelDefinition>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelCompositeModelDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModelDefinition>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModelDefinition>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModelDefinition>",
+            "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+            "simpleType" : "List<AssetModelCompositeModelDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModelDefinition>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelDescription" : {
+          "c2jName" : "assetModelDescription",
+          "c2jShape" : "Description",
+          "deprecated" : false,
+          "documentation" : "<p>A description for the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelDescription",
+          "getterDocumentation" : "/**<p>A description for the asset model.</p>\n@return A description for the asset model.*/",
+          "getterMethodName" : "getAssetModelDescription",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -26607,11 +26276,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "gatewayArn",
+            "marshallLocationName" : "assetModelDescription",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "gatewayArn",
+            "unmarshallLocationName" : "assetModelDescription",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -26623,14 +26292,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "GatewayArn",
+          "name" : "AssetModelDescription",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
-          "setterMethodName" : "setGatewayArn",
+          "setterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.*/",
+          "setterMethodName" : "setAssetModelDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayArn",
+            "variableName" : "assetModelDescription",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -26640,29 +26309,183 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A description for the asset model.</p>\n@param assetModelDescription A description for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayArn",
+            "variableName" : "assetModelDescription",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
+            "documentation" : "<p>A description for the asset model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "GatewayId" : {
-          "c2jName" : "gatewayId",
-          "c2jShape" : "ID",
+        "AssetModelHierarchies" : {
+          "c2jName" : "assetModelHierarchies",
+          "c2jShape" : "AssetModelHierarchyDefinitions",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+          "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGatewayId",
-          "getterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-          "getterMethodName" : "getGatewayId",
+          "fluentSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelHierarchies",
+          "getterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getAssetModelHierarchies",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelHierarchies",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelHierarchies",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelHierarchyDefinition",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelHierarchyDefinition",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelHierarchyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelHierarchyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelHierarchyDefinition",
+                "variableSetterType" : "AssetModelHierarchyDefinition"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelHierarchyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelHierarchyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelHierarchyDefinition",
+                "variableSetterType" : "AssetModelHierarchyDefinition"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelHierarchyDefinition",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelHierarchyDefinition",
+            "templateImplType" : "java.util.ArrayList<AssetModelHierarchyDefinition>",
+            "templateType" : "java.util.List<AssetModelHierarchyDefinition>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelHierarchies",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setAssetModelHierarchies",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "variableName" : "assetModelHierarchies",
+            "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelHierarchyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "variableName" : "assetModelHierarchies",
+            "variableType" : "java.util.List<AssetModelHierarchyDefinition>",
+            "documentation" : "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "List<AssetModelHierarchyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelHierarchyDefinition>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelName" : {
+          "c2jName" : "assetModelName",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>A unique, friendly name for the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelName",
+          "getterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@return A unique, friendly name for the asset model.*/",
+          "getterMethodName" : "getAssetModelName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -26677,11 +26500,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "gatewayId",
+            "marshallLocationName" : "assetModelName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "gatewayId",
+            "unmarshallLocationName" : "assetModelName",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -26693,14 +26516,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "GatewayId",
+          "name" : "AssetModelName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
-          "setterMethodName" : "setGatewayId",
+          "setterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.*/",
+          "setterMethodName" : "setAssetModelName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayId",
+            "variableName" : "assetModelName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -26710,43 +26533,418 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset model.</p>\n@param assetModelName A unique, friendly name for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayId",
+            "variableName" : "assetModelName",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+            "documentation" : "<p>A unique, friendly name for the asset model.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "gatewayId", "gatewayArn" ],
-      "shapeName" : "CreateGatewayResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CreateGatewayResult",
-        "variableName" : "createGatewayResult",
-        "variableType" : "CreateGatewayResult",
-        "documentation" : null,
-        "simpleType" : "CreateGatewayResult",
-        "variableSetterType" : "CreateGatewayResult"
-      },
-      "wrapper" : false
+        },
+        "AssetModelProperties" : {
+          "c2jName" : "assetModelProperties",
+          "c2jShape" : "AssetModelPropertyDefinitions",
+          "deprecated" : false,
+          "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelProperties",
+          "getterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getAssetModelProperties",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelPropertyDefinition>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelProperties",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelProperties",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelPropertyDefinition",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelPropertyDefinition",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelPropertyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelPropertyDefinition",
+                "variableSetterType" : "AssetModelPropertyDefinition"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelPropertyDefinition",
+                "variableName" : "member",
+                "variableType" : "AssetModelPropertyDefinition",
+                "documentation" : "",
+                "simpleType" : "AssetModelPropertyDefinition",
+                "variableSetterType" : "AssetModelPropertyDefinition"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelPropertyDefinition",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelPropertyDefinition",
+            "templateImplType" : "java.util.ArrayList<AssetModelPropertyDefinition>",
+            "templateType" : "java.util.List<AssetModelPropertyDefinition>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelProperties",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setAssetModelProperties",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+            "variableName" : "assetModelProperties",
+            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelPropertyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelPropertyDefinition>",
+            "variableName" : "assetModelProperties",
+            "variableType" : "java.util.List<AssetModelPropertyDefinition>",
+            "documentation" : "<p>The property definitions of the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 200 properties per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "List<AssetModelPropertyDefinition>",
+            "variableSetterType" : "java.util.Collection<AssetModelPropertyDefinition>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
+          "deprecated" : false,
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "clientToken",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
+          },
+          "idempotencyToken" : true,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ClientToken",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Tags" : {
+          "c2jName" : "tags",
+          "c2jShape" : "TagMap",
+          "deprecated" : false,
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTags",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getTags",
+          "getterModel" : {
+            "returnType" : "java.util.Map<String,String>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "tags",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "tags",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : true,
+          "mapModel" : {
+            "implType" : "java.util.HashMap",
+            "interfaceType" : "java.util.Map",
+            "keyLocationName" : "key",
+            "keyModel" : null,
+            "keyType" : "String",
+            "valueLocationName" : "value",
+            "valueModel" : {
+              "c2jName" : "value",
+              "c2jShape" : "TagValue",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withValue",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getValue",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "value",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "value",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Value",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param value */",
+              "setterMethodName" : "setValue",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "valueType" : "String",
+            "entryType" : "Map.Entry<String, String>",
+            "keySimple" : true,
+            "templateImplType" : "java.util.HashMap<String,String>",
+            "templateType" : "java.util.Map<String,String>",
+            "valueList" : false,
+            "valueSimple" : true
+          },
+          "marshallingTargetClass" : "Map",
+          "marshallingType" : "MAP",
+          "name" : "Tags",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setTags",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
+            "documentation" : "",
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetModelName" ],
+      "shapeName" : "CreateAssetModelRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "CreateAssetModelRequest",
+        "variableName" : "createAssetModelRequest",
+        "variableType" : "CreateAssetModelRequest",
+        "documentation" : null,
+        "simpleType" : "CreateAssetModelRequest",
+        "variableSetterType" : "CreateAssetModelRequest"
+      },
+      "wrapper" : false
     },
-    "CreatePortalRequest" : {
-      "c2jName" : "CreatePortalRequest",
+    "CreateAssetModelResult" : {
+      "c2jName" : "CreateAssetModelResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -26758,31 +26956,24 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreatePortalRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAssetModelResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreatePortal",
-        "locationName" : null,
-        "requestUri" : "/portals",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "portalName",
-        "c2jShape" : "Name",
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>A friendly name for the portal.</p>",
+        "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalName",
-        "getterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@return A friendly name for the portal.*/",
-        "getterMethodName" : "getPortalName",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+        "getterMethodName" : "getAssetModelId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -26797,11 +26988,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalName",
+          "marshallLocationName" : "assetModelId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalName",
+          "unmarshallLocationName" : "assetModelId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -26813,14 +27004,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PortalName",
+        "name" : "AssetModelId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.*/",
-        "setterMethodName" : "setPortalName",
+        "setterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+        "setterMethodName" : "setAssetModelId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalName",
+          "variableName" : "assetModelId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -26830,28 +27021,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalName",
+          "variableName" : "assetModelId",
           "variableType" : "String",
-          "documentation" : "<p>A friendly name for the portal.</p>",
+          "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "portalDescription",
-        "c2jShape" : "Description",
+        "c2jName" : "assetModelArn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>A description for the portal.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalDescription",
-        "getterDocumentation" : "/**<p>A description for the portal.</p>\n@return A description for the portal.*/",
-        "getterMethodName" : "getPortalDescription",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+        "getterMethodName" : "getAssetModelArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -26866,11 +27057,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalDescription",
+          "marshallLocationName" : "assetModelArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalDescription",
+          "unmarshallLocationName" : "assetModelArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -26882,14 +27073,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PortalDescription",
+        "name" : "AssetModelArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.*/",
-        "setterMethodName" : "setPortalDescription",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+        "setterMethodName" : "setAssetModelArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalDescription",
+          "variableName" : "assetModelArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -26899,30 +27090,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalDescription",
+          "variableName" : "assetModelArn",
           "variableType" : "String",
-          "documentation" : "<p>A description for the portal.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "portalContactEmail",
-        "c2jShape" : "Email",
+        "c2jName" : "assetModelStatus",
+        "c2jShape" : "AssetModelStatus",
         "deprecated" : false,
-        "documentation" : "<p>The AWS administrator's contact email address.</p>",
+        "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalContactEmail",
-        "getterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@return The AWS administrator's contact email address.*/",
-        "getterMethodName" : "getPortalContactEmail",
+        "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelStatus",
+        "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getAssetModelStatus",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "AssetModelStatus",
           "documentation" : null
         },
         "http" : {
@@ -26935,11 +27126,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalContactEmail",
+          "marshallLocationName" : "assetModelStatus",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalContactEmail",
+          "unmarshallLocationName" : "assetModelStatus",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -26949,47 +27140,309 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PortalContactEmail",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetModelStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.*/",
-        "setterMethodName" : "setPortalContactEmail",
+        "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setAssetModelStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalContactEmail",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
+          "documentation" : "",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalContactEmail",
-          "variableType" : "String",
-          "documentation" : "<p>The AWS administrator's contact email address.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
+          "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+      } ],
+      "membersAsMap" : {
+        "AssetModelArn" : {
+          "c2jName" : "assetModelArn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+          "getterMethodName" : "getAssetModelArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+          "setterMethodName" : "setAssetModelArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelArn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param assetModelId The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelStatus" : {
+          "c2jName" : "assetModelStatus",
+          "c2jShape" : "AssetModelStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelStatus",
+          "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getAssetModelStatus",
+          "getterModel" : {
+            "returnType" : "AssetModelStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelStatus",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelStatus",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetModelStatus",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setAssetModelStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "<p>The status of the asset model, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetModelId", "assetModelArn", "assetModelStatus" ],
+      "shapeName" : "CreateAssetModelResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "CreateAssetModelResult",
+        "variableName" : "createAssetModelResult",
+        "variableType" : "CreateAssetModelResult",
+        "documentation" : null,
+        "simpleType" : "CreateAssetModelResult",
+        "variableSetterType" : "CreateAssetModelResult"
+      },
+      "wrapper" : false
+    },
+    "CreateAssetRequest" : {
+      "c2jName" : "CreateAssetRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateAssetRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "CreateAsset",
+        "locationName" : null,
+        "requestUri" : "/assets",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetName",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>A unique, friendly name for the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetName",
+        "getterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@return A unique, friendly name for the asset.*/",
+        "getterMethodName" : "getAssetName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -27004,14 +27457,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "clientToken",
+          "marshallLocationName" : "assetName",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "assetName",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -27020,14 +27473,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "AssetName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.*/",
+        "setterMethodName" : "setAssetName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "assetName",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -27037,30 +27490,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "assetName",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>A unique, friendly name for the asset.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "portalLogoImageFile",
-        "c2jShape" : "ImageFile",
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
+        "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalLogoImageFile",
-        "getterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@return A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
-        "getterMethodName" : "getPortalLogoImageFile",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@return The ID of the asset model from which to create the asset.*/",
+        "getterMethodName" : "getAssetModelId",
         "getterModel" : {
-          "returnType" : "ImageFile",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -27073,11 +27526,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalLogoImageFile",
+          "marshallLocationName" : "assetModelId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalLogoImageFile",
+          "unmarshallLocationName" : "assetModelId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -27087,47 +27540,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "PortalLogoImageFile",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
-        "setterMethodName" : "setPortalLogoImageFile",
+        "setterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.*/",
+        "setterMethodName" : "setAssetModelId",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ImageFile",
-          "variableName" : "portalLogoImageFile",
-          "variableType" : "ImageFile",
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "ImageFile",
-          "variableSetterType" : "ImageFile"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ImageFile",
-          "variableName" : "portalLogoImageFile",
-          "variableType" : "ImageFile",
-          "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
-          "simpleType" : "ImageFile",
-          "variableSetterType" : "ImageFile"
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "roleArn",
-        "c2jShape" : "ARN",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withRoleArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getRoleArn",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -27142,14 +27595,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "roleArn",
+          "marshallLocationName" : "clientToken",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "roleArn",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -27158,14 +27611,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "RoleArn",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setRoleArn",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "roleArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -27175,13 +27628,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "roleArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -27190,12 +27643,12 @@
         "c2jName" : "tags",
         "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "getterMethodName" : "getTags",
         "getterModel" : {
           "returnType" : "java.util.Map<String,String>",
@@ -27313,7 +27766,7 @@
         "marshallingType" : "MAP",
         "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
@@ -27328,99 +27781,30 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.Map<String,String>",
           "variableName" : "tags",
           "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "Map<String,String>",
           "variableSetterType" : "java.util.Map<String,String>"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "portalAuthMode",
-        "c2jShape" : "AuthMode",
-        "deprecated" : false,
-        "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "AuthMode",
-        "fluentSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
-        "fluentSetterMethodName" : "withPortalAuthMode",
-        "getterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@return The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
-        "getterMethodName" : "getPortalAuthMode",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalAuthMode",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "portalAuthMode",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PortalAuthMode",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
-        "setterMethodName" : "setPortalAuthMode",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalAuthMode",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalAuthMode",
-          "variableType" : "String",
-          "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@return The ID of the asset model from which to create the asset.*/",
+          "getterMethodName" : "getAssetModelId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -27435,14 +27819,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "clientToken",
+            "marshallLocationName" : "assetModelId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "assetModelId",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -27451,224 +27835,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "AssetModelId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "PortalAuthMode" : {
-          "c2jName" : "portalAuthMode",
-          "c2jShape" : "AuthMode",
-          "deprecated" : false,
-          "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "AuthMode",
-          "fluentSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
-          "fluentSetterMethodName" : "withPortalAuthMode",
-          "getterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@return The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
-          "getterMethodName" : "getPortalAuthMode",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalAuthMode",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalAuthMode",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalAuthMode",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
-          "setterMethodName" : "setPortalAuthMode",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalAuthMode",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalAuthMode",
-            "variableType" : "String",
-            "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "PortalContactEmail" : {
-          "c2jName" : "portalContactEmail",
-          "c2jShape" : "Email",
-          "deprecated" : false,
-          "documentation" : "<p>The AWS administrator's contact email address.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalContactEmail",
-          "getterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@return The AWS administrator's contact email address.*/",
-          "getterMethodName" : "getPortalContactEmail",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalContactEmail",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalContactEmail",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalContactEmail",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.*/",
-          "setterMethodName" : "setPortalContactEmail",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalContactEmail",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalContactEmail",
-            "variableType" : "String",
-            "documentation" : "<p>The AWS administrator's contact email address.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "PortalDescription" : {
-          "c2jName" : "portalDescription",
-          "c2jShape" : "Description",
-          "deprecated" : false,
-          "documentation" : "<p>A description for the portal.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalDescription",
-          "getterDocumentation" : "/**<p>A description for the portal.</p>\n@return A description for the portal.*/",
-          "getterMethodName" : "getPortalDescription",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalDescription",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalDescription",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalDescription",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.*/",
-          "setterMethodName" : "setPortalDescription",
+          "setterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.*/",
+          "setterMethodName" : "setAssetModelId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalDescription",
+            "variableName" : "assetModelId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -27678,99 +27852,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model from which to create the asset.</p>\n@param assetModelId The ID of the asset model from which to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalDescription",
+            "variableName" : "assetModelId",
             "variableType" : "String",
-            "documentation" : "<p>A description for the portal.</p>",
+            "documentation" : "<p>The ID of the asset model from which to create the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "PortalLogoImageFile" : {
-          "c2jName" : "portalLogoImageFile",
-          "c2jShape" : "ImageFile",
-          "deprecated" : false,
-          "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalLogoImageFile",
-          "getterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@return A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
-          "getterMethodName" : "getPortalLogoImageFile",
-          "getterModel" : {
-            "returnType" : "ImageFile",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalLogoImageFile",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalLogoImageFile",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "PortalLogoImageFile",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
-          "setterMethodName" : "setPortalLogoImageFile",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "ImageFile",
-            "variableName" : "portalLogoImageFile",
-            "variableType" : "ImageFile",
-            "documentation" : "",
-            "simpleType" : "ImageFile",
-            "variableSetterType" : "ImageFile"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "ImageFile",
-            "variableName" : "portalLogoImageFile",
-            "variableType" : "ImageFile",
-            "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
-            "simpleType" : "ImageFile",
-            "variableSetterType" : "ImageFile"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "PortalName" : {
-          "c2jName" : "portalName",
+        "AssetName" : {
+          "c2jName" : "assetName",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>A friendly name for the portal.</p>",
+          "documentation" : "<p>A unique, friendly name for the asset.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalName",
-          "getterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@return A friendly name for the portal.*/",
-          "getterMethodName" : "getPortalName",
+          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetName",
+          "getterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@return A unique, friendly name for the asset.*/",
+          "getterMethodName" : "getAssetName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -27785,11 +27889,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalName",
+            "marshallLocationName" : "assetName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalName",
+            "unmarshallLocationName" : "assetName",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -27801,14 +27905,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PortalName",
+          "name" : "AssetName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.*/",
-          "setterMethodName" : "setPortalName",
+          "setterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.*/",
+          "setterMethodName" : "setAssetName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalName",
+            "variableName" : "assetName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -27818,29 +27922,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the asset.</p>\n@param assetName A unique, friendly name for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalName",
+            "variableName" : "assetName",
             "variableType" : "String",
-            "documentation" : "<p>A friendly name for the portal.</p>",
+            "documentation" : "<p>A unique, friendly name for the asset.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "RoleArn" : {
-          "c2jName" : "roleArn",
-          "c2jShape" : "ARN",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withRoleArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getRoleArn",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -27855,14 +27959,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "roleArn",
+            "marshallLocationName" : "clientToken",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "roleArn",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -27871,14 +27975,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "RoleArn",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setRoleArn",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "roleArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -27888,13 +27992,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "roleArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -27904,12 +28008,12 @@
           "c2jName" : "tags",
           "c2jShape" : "TagMap",
           "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
           "getterMethodName" : "getTags",
           "getterModel" : {
             "returnType" : "java.util.Map<String,String>",
@@ -28027,7 +28131,7 @@
           "marshallingType" : "MAP",
           "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
           "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
@@ -28042,13 +28146,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.Map<String,String>",
             "variableName" : "tags",
             "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "Map<String,String>",
             "variableSetterType" : "java.util.Map<String,String>"
           },
@@ -28058,24 +28162,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "portalName", "portalContactEmail", "roleArn" ],
-      "shapeName" : "CreatePortalRequest",
+      "required" : [ "assetName", "assetModelId" ],
+      "shapeName" : "CreateAssetRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreatePortalRequest",
-        "variableName" : "createPortalRequest",
-        "variableType" : "CreatePortalRequest",
+        "variableDeclarationType" : "CreateAssetRequest",
+        "variableName" : "createAssetRequest",
+        "variableType" : "CreateAssetRequest",
         "documentation" : null,
-        "simpleType" : "CreatePortalRequest",
-        "variableSetterType" : "CreatePortalRequest"
+        "simpleType" : "CreateAssetRequest",
+        "variableSetterType" : "CreateAssetRequest"
       },
       "wrapper" : false
     },
-    "CreatePortalResult" : {
-      "c2jName" : "CreatePortalResponse",
+    "CreateAssetResult" : {
+      "c2jName" : "CreateAssetResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -28087,7 +28191,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreatePortalResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateAssetResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -28095,16 +28199,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "portalId",
+        "c2jName" : "assetId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the created portal.</p>",
+        "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalId",
-        "getterDocumentation" : "/**<p>The ID of the created portal.</p>\n@return The ID of the created portal.*/",
-        "getterMethodName" : "getPortalId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
+        "getterMethodName" : "getAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -28119,11 +28223,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalId",
+          "marshallLocationName" : "assetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalId",
+          "unmarshallLocationName" : "assetId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -28135,14 +28239,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PortalId",
+        "name" : "AssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.*/",
-        "setterMethodName" : "setPortalId",
+        "setterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
+        "setterMethodName" : "setAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalId",
+          "variableName" : "assetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -28152,28 +28256,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalId",
+          "variableName" : "assetId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the created portal.</p>",
+          "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "portalArn",
+        "c2jName" : "assetArn",
         "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
-        "getterMethodName" : "getPortalArn",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "getterMethodName" : "getAssetArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -28188,11 +28292,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalArn",
+          "marshallLocationName" : "assetArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalArn",
+          "unmarshallLocationName" : "assetArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -28204,14 +28308,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PortalArn",
+        "name" : "AssetArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
-        "setterMethodName" : "setPortalArn",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "setterMethodName" : "setAssetArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalArn",
+          "variableName" : "assetArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -28221,30 +28325,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalArn",
+          "variableName" : "assetArn",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "portalStartUrl",
-        "c2jShape" : "Url",
+        "c2jName" : "assetStatus",
+        "c2jShape" : "AssetStatus",
         "deprecated" : false,
-        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+        "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalStartUrl",
-        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
-        "getterMethodName" : "getPortalStartUrl",
+        "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetStatus",
+        "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getAssetStatus",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "AssetStatus",
           "documentation" : null
         },
         "http" : {
@@ -28257,11 +28361,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalStartUrl",
+          "marshallLocationName" : "assetStatus",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalStartUrl",
+          "unmarshallLocationName" : "assetStatus",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -28271,187 +28375,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PortalStartUrl",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
-        "setterMethodName" : "setPortalStartUrl",
+        "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setAssetStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalStartUrl",
-          "variableType" : "String",
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalStartUrl",
-          "variableType" : "String",
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "portalStatus",
-        "c2jShape" : "PortalStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalStatus",
-        "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getPortalStatus",
-        "getterModel" : {
-          "returnType" : "PortalStatus",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalStatus",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "portalStatus",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "PortalStatus",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setPortalStatus",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "PortalStatus",
-          "variableName" : "portalStatus",
-          "variableType" : "PortalStatus",
-          "documentation" : "",
-          "simpleType" : "PortalStatus",
-          "variableSetterType" : "PortalStatus"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "PortalStatus",
-          "variableName" : "portalStatus",
-          "variableType" : "PortalStatus",
-          "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "PortalStatus",
-          "variableSetterType" : "PortalStatus"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "ssoApplicationId",
-        "c2jShape" : "SSOApplicationId",
-        "deprecated" : false,
-        "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withSsoApplicationId",
-        "getterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@return The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
-        "getterMethodName" : "getSsoApplicationId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "ssoApplicationId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "ssoApplicationId",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "SsoApplicationId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
-        "setterMethodName" : "setSsoApplicationId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "ssoApplicationId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "ssoApplicationId",
-          "variableType" : "String",
-          "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
+          "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "PortalArn" : {
-          "c2jName" : "portalArn",
+        "AssetArn" : {
+          "c2jName" : "assetArn",
           "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
-          "getterMethodName" : "getPortalArn",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "getterMethodName" : "getAssetArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -28466,11 +28432,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalArn",
+            "marshallLocationName" : "assetArn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalArn",
+            "unmarshallLocationName" : "assetArn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -28482,14 +28448,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PortalArn",
+          "name" : "AssetArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
-          "setterMethodName" : "setPortalArn",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "setterMethodName" : "setAssetArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalArn",
+            "variableName" : "assetArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -28499,99 +28465,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalArn",
+            "variableName" : "assetArn",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "PortalId" : {
-          "c2jName" : "portalId",
+        "AssetId" : {
+          "c2jName" : "assetId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the created portal.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalId",
-          "getterDocumentation" : "/**<p>The ID of the created portal.</p>\n@return The ID of the created portal.*/",
-          "getterMethodName" : "getPortalId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.*/",
-          "setterMethodName" : "setPortalId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the created portal.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "PortalStartUrl" : {
-          "c2jName" : "portalStartUrl",
-          "c2jShape" : "Url",
-          "deprecated" : false,
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+          "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalStartUrl",
-          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
-          "getterMethodName" : "getPortalStartUrl",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@return The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
+          "getterMethodName" : "getAssetId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -28606,11 +28502,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalStartUrl",
+            "marshallLocationName" : "assetId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalStartUrl",
+            "unmarshallLocationName" : "assetId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -28622,14 +28518,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PortalStartUrl",
+          "name" : "AssetId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
-          "setterMethodName" : "setPortalStartUrl",
+          "setterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.*/",
+          "setterMethodName" : "setAssetId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalStartUrl",
+            "variableName" : "assetId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -28639,31 +28535,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>\n@param assetId The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalStartUrl",
+            "variableName" : "assetId",
             "variableType" : "String",
-            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+            "documentation" : "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other AWS IoT SiteWise APIs.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "PortalStatus" : {
-          "c2jName" : "portalStatus",
-          "c2jShape" : "PortalStatus",
+        "AssetStatus" : {
+          "c2jName" : "assetStatus",
+          "c2jShape" : "AssetStatus",
           "deprecated" : false,
-          "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalStatus",
-          "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getPortalStatus",
+          "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetStatus",
+          "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getAssetStatus",
           "getterModel" : {
-            "returnType" : "PortalStatus",
+            "returnType" : "AssetStatus",
             "documentation" : null
           },
           "http" : {
@@ -28676,11 +28572,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalStatus",
+            "marshallLocationName" : "assetStatus",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalStatus",
+            "unmarshallLocationName" : "assetStatus",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -28692,102 +28588,32 @@
           "mapModel" : null,
           "marshallingTargetClass" : "StructuredPojo",
           "marshallingType" : "STRUCTURED",
-          "name" : "PortalStatus",
+          "name" : "AssetStatus",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setPortalStatus",
+          "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setAssetStatus",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "PortalStatus",
-            "variableName" : "portalStatus",
-            "variableType" : "PortalStatus",
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "assetStatus",
+            "variableType" : "AssetStatus",
             "documentation" : "",
-            "simpleType" : "PortalStatus",
-            "variableSetterType" : "PortalStatus"
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "PortalStatus",
-            "variableName" : "portalStatus",
-            "variableType" : "PortalStatus",
-            "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "PortalStatus",
-            "variableSetterType" : "PortalStatus"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "SsoApplicationId" : {
-          "c2jName" : "ssoApplicationId",
-          "c2jShape" : "SSOApplicationId",
-          "deprecated" : false,
-          "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withSsoApplicationId",
-          "getterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@return The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
-          "getterMethodName" : "getSsoApplicationId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "ssoApplicationId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "ssoApplicationId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "SsoApplicationId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
-          "setterMethodName" : "setSsoApplicationId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "ssoApplicationId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "ssoApplicationId",
-            "variableType" : "String",
-            "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "assetStatus",
+            "variableType" : "AssetStatus",
+            "documentation" : "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "xmlNameSpaceUri" : null
         }
@@ -28795,8 +28621,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "portalId", "portalArn", "portalStartUrl", "portalStatus", "ssoApplicationId" ],
-      "shapeName" : "CreatePortalResult",
+      "required" : [ "assetId", "assetArn", "assetStatus" ],
+      "shapeName" : "CreateAssetResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -28805,17 +28631,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreatePortalResult",
-        "variableName" : "createPortalResult",
-        "variableType" : "CreatePortalResult",
+        "variableDeclarationType" : "CreateAssetResult",
+        "variableName" : "createAssetResult",
+        "variableType" : "CreateAssetResult",
         "documentation" : null,
-        "simpleType" : "CreatePortalResult",
-        "variableSetterType" : "CreatePortalResult"
+        "simpleType" : "CreateAssetResult",
+        "variableSetterType" : "CreateAssetResult"
       },
       "wrapper" : false
     },
-    "CreatePresignedPortalUrlRequest" : {
-      "c2jName" : "CreatePresignedPortalUrlRequest",
+    "CreateDashboardRequest" : {
+      "c2jName" : "CreateDashboardRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -28827,31 +28653,31 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreatePresignedPortalUrlRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateDashboardRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : {
-        "action" : "CreatePresignedPortalUrl",
+        "action" : "CreateDashboard",
         "locationName" : null,
-        "requestUri" : "/portals/{portalId}/presigned-url",
+        "requestUri" : "/dashboards",
         "target" : null,
-        "verb" : "GET",
+        "verb" : "POST",
         "xmlNameSpaceUri" : null
       },
       "members" : [ {
-        "c2jName" : "portalId",
+        "c2jName" : "projectId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the portal to access.</p>",
+        "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalId",
-        "getterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@return The ID of the portal to access.*/",
-        "getterMethodName" : "getPortalId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectId",
+        "getterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@return The ID of the project in which to create the dashboard.*/",
+        "getterMethodName" : "getProjectId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -28864,14 +28690,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "portalId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "projectId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalId",
-          "uri" : true
+          "unmarshallLocationName" : "projectId",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -28882,14 +28708,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PortalId",
+        "name" : "ProjectId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.*/",
-        "setterMethodName" : "setPortalId",
+        "setterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.*/",
+        "setterMethodName" : "setProjectId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalId",
+          "variableName" : "projectId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -28899,30 +28725,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "portalId",
+          "variableName" : "projectId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the portal to access.</p>",
+          "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "sessionDurationSeconds",
-        "c2jShape" : "SessionDurationSeconds",
+        "c2jName" : "dashboardName",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>",
+        "documentation" : "<p>A friendly name for the dashboard.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withSessionDurationSeconds",
-        "getterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@return The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)*/",
-        "getterMethodName" : "getSessionDurationSeconds",
+        "fluentSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardName",
+        "getterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@return A friendly name for the dashboard.*/",
+        "getterMethodName" : "getDashboardName",
         "getterModel" : {
-          "returnType" : "Integer",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -28933,13 +28759,13 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "sessionDurationSeconds",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "dashboardName",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "sessionDurationSeconds",
+          "unmarshallLocationName" : "dashboardName",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -28949,489 +28775,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "Integer",
-        "marshallingType" : "INTEGER",
-        "name" : "SessionDurationSeconds",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "DashboardName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)*/",
-        "setterMethodName" : "setSessionDurationSeconds",
+        "setterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.*/",
+        "setterMethodName" : "setDashboardName",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Integer",
-          "variableName" : "sessionDurationSeconds",
-          "variableType" : "Integer",
+          "variableDeclarationType" : "String",
+          "variableName" : "dashboardName",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "Integer",
-          "variableSetterType" : "Integer"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Integer",
-          "variableName" : "sessionDurationSeconds",
-          "variableType" : "Integer",
-          "documentation" : "<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>",
-          "simpleType" : "Integer",
-          "variableSetterType" : "Integer"
-        },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "PortalId" : {
-          "c2jName" : "portalId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the portal to access.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalId",
-          "getterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@return The ID of the portal to access.*/",
-          "getterMethodName" : "getPortalId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "portalId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalId",
-            "uri" : true
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.*/",
-          "setterMethodName" : "setPortalId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the portal to access.</p>\n@param portalId The ID of the portal to access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the portal to access.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "SessionDurationSeconds" : {
-          "c2jName" : "sessionDurationSeconds",
-          "c2jShape" : "SessionDurationSeconds",
-          "deprecated" : false,
-          "documentation" : "<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withSessionDurationSeconds",
-          "getterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@return The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)*/",
-          "getterMethodName" : "getSessionDurationSeconds",
-          "getterModel" : {
-            "returnType" : "Integer",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "sessionDurationSeconds",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "sessionDurationSeconds",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "Integer",
-          "marshallingType" : "INTEGER",
-          "name" : "SessionDurationSeconds",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)*/",
-          "setterMethodName" : "setSessionDurationSeconds",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Integer",
-            "variableName" : "sessionDurationSeconds",
-            "variableType" : "Integer",
-            "documentation" : "",
-            "simpleType" : "Integer",
-            "variableSetterType" : "Integer"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>\n@param sessionDurationSeconds The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Integer",
-            "variableName" : "sessionDurationSeconds",
-            "variableType" : "Integer",
-            "documentation" : "<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>",
-            "simpleType" : "Integer",
-            "variableSetterType" : "Integer"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "portalId" ],
-      "shapeName" : "CreatePresignedPortalUrlRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CreatePresignedPortalUrlRequest",
-        "variableName" : "createPresignedPortalUrlRequest",
-        "variableType" : "CreatePresignedPortalUrlRequest",
-        "documentation" : null,
-        "simpleType" : "CreatePresignedPortalUrlRequest",
-        "variableSetterType" : "CreatePresignedPortalUrlRequest"
-      },
-      "wrapper" : false
-    },
-    "CreatePresignedPortalUrlResult" : {
-      "c2jName" : "CreatePresignedPortalUrlResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreatePresignedPortalUrlResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "presignedPortalUrl",
-        "c2jShape" : "Url",
-        "deprecated" : false,
-        "documentation" : "<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPresignedPortalUrl",
-        "getterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@return The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>*/",
-        "getterMethodName" : "getPresignedPortalUrl",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "presignedPortalUrl",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "presignedPortalUrl",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PresignedPortalUrl",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>*/",
-        "setterMethodName" : "setPresignedPortalUrl",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "presignedPortalUrl",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "presignedPortalUrl",
-          "variableType" : "String",
-          "documentation" : "<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "PresignedPortalUrl" : {
-          "c2jName" : "presignedPortalUrl",
-          "c2jShape" : "Url",
-          "deprecated" : false,
-          "documentation" : "<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPresignedPortalUrl",
-          "getterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@return The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>*/",
-          "getterMethodName" : "getPresignedPortalUrl",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "presignedPortalUrl",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "presignedPortalUrl",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PresignedPortalUrl",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>*/",
-          "setterMethodName" : "setPresignedPortalUrl",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "presignedPortalUrl",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>\n@param presignedPortalUrl The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "presignedPortalUrl",
-            "variableType" : "String",
-            "documentation" : "<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "presignedPortalUrl" ],
-      "shapeName" : "CreatePresignedPortalUrlResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "CreatePresignedPortalUrlResult",
-        "variableName" : "createPresignedPortalUrlResult",
-        "variableType" : "CreatePresignedPortalUrlResult",
-        "documentation" : null,
-        "simpleType" : "CreatePresignedPortalUrlResult",
-        "variableSetterType" : "CreatePresignedPortalUrlResult"
-      },
-      "wrapper" : false
-    },
-    "CreateProjectRequest" : {
-      "c2jName" : "CreateProjectRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateProjectRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "CreateProject",
-        "locationName" : null,
-        "requestUri" : "/projects",
-        "target" : null,
-        "verb" : "POST",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "portalId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the portal in which to create the project.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalId",
-        "getterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@return The ID of the portal in which to create the project.*/",
-        "getterMethodName" : "getPortalId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "portalId",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PortalId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.*/",
-        "setterMethodName" : "setPortalId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the portal in which to create the project.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "String",
+          "variableName" : "dashboardName",
+          "variableType" : "String",
+          "documentation" : "<p>A friendly name for the dashboard.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "projectName",
-        "c2jShape" : "Name",
+        "c2jName" : "dashboardDescription",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>A friendly name for the project.</p>",
+        "documentation" : "<p>A description for the dashboard.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectName",
-        "getterDocumentation" : "/**<p>A friendly name for the project.</p>\n@return A friendly name for the project.*/",
-        "getterMethodName" : "getProjectName",
+        "fluentSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardDescription",
+        "getterDocumentation" : "/**<p>A description for the dashboard.</p>\n@return A description for the dashboard.*/",
+        "getterMethodName" : "getDashboardDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -29446,11 +28830,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "projectName",
+          "marshallLocationName" : "dashboardDescription",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectName",
+          "unmarshallLocationName" : "dashboardDescription",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -29462,14 +28846,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectName",
+        "name" : "DashboardDescription",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.*/",
-        "setterMethodName" : "setProjectName",
+        "setterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.*/",
+        "setterMethodName" : "setDashboardDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectName",
+          "variableName" : "dashboardDescription",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -29479,28 +28863,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectName",
+          "variableName" : "dashboardDescription",
           "variableType" : "String",
-          "documentation" : "<p>A friendly name for the project.</p>",
+          "documentation" : "<p>A description for the dashboard.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "projectDescription",
-        "c2jShape" : "Description",
+        "c2jName" : "dashboardDefinition",
+        "c2jShape" : "DashboardDefinition",
         "deprecated" : false,
-        "documentation" : "<p>A description for the project.</p>",
+        "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectDescription",
-        "getterDocumentation" : "/**<p>A description for the project.</p>\n@return A description for the project.*/",
-        "getterMethodName" : "getProjectDescription",
+        "fluentSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardDefinition",
+        "getterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getDashboardDefinition",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -29515,11 +28899,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "projectDescription",
+          "marshallLocationName" : "dashboardDefinition",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectDescription",
+          "unmarshallLocationName" : "dashboardDefinition",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -29531,14 +28915,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectDescription",
+        "name" : "DashboardDefinition",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.*/",
-        "setterMethodName" : "setProjectDescription",
+        "setterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setDashboardDefinition",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectDescription",
+          "variableName" : "dashboardDefinition",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -29548,13 +28932,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectDescription",
+          "variableName" : "dashboardDefinition",
           "variableType" : "String",
-          "documentation" : "<p>A description for the project.</p>",
+          "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -29632,12 +29016,12 @@
         "c2jName" : "tags",
         "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "getterMethodName" : "getTags",
         "getterModel" : {
           "returnType" : "java.util.Map<String,String>",
@@ -29755,7 +29139,7 @@
         "marshallingType" : "MAP",
         "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
         "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
@@ -29770,13 +29154,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.Map<String,String>",
           "variableName" : "tags",
           "variableType" : "java.util.Map<String,String>",
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "Map<String,String>",
           "variableSetterType" : "java.util.Map<String,String>"
         },
@@ -29853,17 +29237,17 @@
           },
           "xmlNameSpaceUri" : null
         },
-        "PortalId" : {
-          "c2jName" : "portalId",
-          "c2jShape" : "ID",
+        "DashboardDefinition" : {
+          "c2jName" : "dashboardDefinition",
+          "c2jShape" : "DashboardDefinition",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the portal in which to create the project.</p>",
+          "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalId",
-          "getterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@return The ID of the portal in which to create the project.*/",
-          "getterMethodName" : "getPortalId",
+          "fluentSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardDefinition",
+          "getterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getDashboardDefinition",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -29878,11 +29262,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalId",
+            "marshallLocationName" : "dashboardDefinition",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalId",
+            "unmarshallLocationName" : "dashboardDefinition",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -29894,14 +29278,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PortalId",
+          "name" : "DashboardDefinition",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.*/",
-          "setterMethodName" : "setPortalId",
+          "setterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setDashboardDefinition",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalId",
+            "variableName" : "dashboardDefinition",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -29911,29 +29295,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param dashboardDefinition The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "portalId",
+            "variableName" : "dashboardDefinition",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the portal in which to create the project.</p>",
+            "documentation" : "<p>The dashboard definition specified in a JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ProjectDescription" : {
-          "c2jName" : "projectDescription",
+        "DashboardDescription" : {
+          "c2jName" : "dashboardDescription",
           "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>A description for the project.</p>",
+          "documentation" : "<p>A description for the dashboard.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectDescription",
-          "getterDocumentation" : "/**<p>A description for the project.</p>\n@return A description for the project.*/",
-          "getterMethodName" : "getProjectDescription",
+          "fluentSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardDescription",
+          "getterDocumentation" : "/**<p>A description for the dashboard.</p>\n@return A description for the dashboard.*/",
+          "getterMethodName" : "getDashboardDescription",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -29948,11 +29332,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "projectDescription",
+            "marshallLocationName" : "dashboardDescription",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectDescription",
+            "unmarshallLocationName" : "dashboardDescription",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -29964,14 +29348,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ProjectDescription",
+          "name" : "DashboardDescription",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.*/",
-          "setterMethodName" : "setProjectDescription",
+          "setterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.*/",
+          "setterMethodName" : "setDashboardDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectDescription",
+            "variableName" : "dashboardDescription",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -29981,29 +29365,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A description for the dashboard.</p>\n@param dashboardDescription A description for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectDescription",
+            "variableName" : "dashboardDescription",
             "variableType" : "String",
-            "documentation" : "<p>A description for the project.</p>",
+            "documentation" : "<p>A description for the dashboard.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ProjectName" : {
-          "c2jName" : "projectName",
+        "DashboardName" : {
+          "c2jName" : "dashboardName",
           "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>A friendly name for the project.</p>",
+          "documentation" : "<p>A friendly name for the dashboard.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectName",
-          "getterDocumentation" : "/**<p>A friendly name for the project.</p>\n@return A friendly name for the project.*/",
-          "getterMethodName" : "getProjectName",
+          "fluentSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardName",
+          "getterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@return A friendly name for the dashboard.*/",
+          "getterMethodName" : "getDashboardName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -30018,11 +29402,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "projectName",
+            "marshallLocationName" : "dashboardName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectName",
+            "unmarshallLocationName" : "dashboardName",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -30034,14 +29418,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ProjectName",
+          "name" : "DashboardName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.*/",
-          "setterMethodName" : "setProjectName",
+          "setterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.*/",
+          "setterMethodName" : "setDashboardName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectName",
+            "variableName" : "dashboardName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -30051,30 +29435,100 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A friendly name for the dashboard.</p>\n@param dashboardName A friendly name for the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectName",
+            "variableName" : "dashboardName",
             "variableType" : "String",
-            "documentation" : "<p>A friendly name for the project.</p>",
+            "documentation" : "<p>A friendly name for the dashboard.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Tags" : {
-          "c2jName" : "tags",
-          "c2jShape" : "TagMap",
+        "ProjectId" : {
+          "c2jName" : "projectId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getTags",
-          "getterModel" : {
+          "fluentSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectId",
+          "getterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@return The ID of the project in which to create the dashboard.*/",
+          "getterMethodName" : "getProjectId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "projectId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "projectId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ProjectId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.*/",
+          "setterMethodName" : "setProjectId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the project in which to create the dashboard.</p>\n@param projectId The ID of the project in which to create the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the project in which to create the dashboard.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Tags" : {
+          "c2jName" : "tags",
+          "c2jShape" : "TagMap",
+          "deprecated" : false,
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTags",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getTags",
+          "getterModel" : {
             "returnType" : "java.util.Map<String,String>",
             "documentation" : null
           },
@@ -30190,7 +29644,7 @@
           "marshallingType" : "MAP",
           "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
           "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
@@ -30205,13 +29659,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.Map<String,String>",
             "variableName" : "tags",
             "variableType" : "java.util.Map<String,String>",
-            "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the dashboard. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "Map<String,String>",
             "variableSetterType" : "java.util.Map<String,String>"
           },
@@ -30221,24 +29675,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "portalId", "projectName" ],
-      "shapeName" : "CreateProjectRequest",
+      "required" : [ "projectId", "dashboardName", "dashboardDefinition" ],
+      "shapeName" : "CreateDashboardRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateProjectRequest",
-        "variableName" : "createProjectRequest",
-        "variableType" : "CreateProjectRequest",
+        "variableDeclarationType" : "CreateDashboardRequest",
+        "variableName" : "createDashboardRequest",
+        "variableType" : "CreateDashboardRequest",
         "documentation" : null,
-        "simpleType" : "CreateProjectRequest",
-        "variableSetterType" : "CreateProjectRequest"
+        "simpleType" : "CreateDashboardRequest",
+        "variableSetterType" : "CreateDashboardRequest"
       },
       "wrapper" : false
     },
-    "CreateProjectResult" : {
-      "c2jName" : "CreateProjectResponse",
+    "CreateDashboardResult" : {
+      "c2jName" : "CreateDashboardResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -30250,7 +29704,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateProjectResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateDashboardResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -30258,16 +29712,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "projectId",
+        "c2jName" : "dashboardId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the project.</p>",
+        "documentation" : "<p>The ID of the dashboard.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectId",
-        "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
-        "getterMethodName" : "getProjectId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardId",
+        "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
+        "getterMethodName" : "getDashboardId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -30282,11 +29736,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "projectId",
+          "marshallLocationName" : "dashboardId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectId",
+          "unmarshallLocationName" : "dashboardId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -30298,14 +29752,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectId",
+        "name" : "DashboardId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
-        "setterMethodName" : "setProjectId",
+        "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.*/",
+        "setterMethodName" : "setDashboardId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "dashboardId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -30315,28 +29769,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "dashboardId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the project.</p>",
+          "documentation" : "<p>The ID of the dashboard.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "projectArn",
+        "c2jName" : "dashboardArn",
         "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
-        "getterMethodName" : "getProjectArn",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
+        "getterMethodName" : "getDashboardArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -30351,11 +29805,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "projectArn",
+          "marshallLocationName" : "dashboardArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectArn",
+          "unmarshallLocationName" : "dashboardArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -30367,14 +29821,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectArn",
+        "name" : "DashboardArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
-        "setterMethodName" : "setProjectArn",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
+        "setterMethodName" : "setDashboardArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectArn",
+          "variableName" : "dashboardArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -30384,30 +29838,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectArn",
+          "variableName" : "dashboardArn",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "ProjectArn" : {
-          "c2jName" : "projectArn",
+        "DashboardArn" : {
+          "c2jName" : "dashboardArn",
           "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
-          "getterMethodName" : "getProjectArn",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
+          "getterMethodName" : "getDashboardArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -30422,11 +29876,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "projectArn",
+            "marshallLocationName" : "dashboardArn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectArn",
+            "unmarshallLocationName" : "dashboardArn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -30438,14 +29892,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ProjectArn",
+          "name" : "DashboardArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
-          "setterMethodName" : "setProjectArn",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>*/",
+          "setterMethodName" : "setDashboardArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectArn",
+            "variableName" : "dashboardArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -30455,29 +29909,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>\n@param dashboardArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectArn",
+            "variableName" : "dashboardArn",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ProjectId" : {
-          "c2jName" : "projectId",
+        "DashboardId" : {
+          "c2jName" : "dashboardId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the project.</p>",
+          "documentation" : "<p>The ID of the dashboard.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectId",
-          "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
-          "getterMethodName" : "getProjectId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardId",
+          "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
+          "getterMethodName" : "getDashboardId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -30492,11 +29946,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "projectId",
+            "marshallLocationName" : "dashboardId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "projectId",
+            "unmarshallLocationName" : "dashboardId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -30508,14 +29962,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ProjectId",
+          "name" : "DashboardId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
-          "setterMethodName" : "setProjectId",
+          "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.*/",
+          "setterMethodName" : "setDashboardId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectId",
+            "variableName" : "dashboardId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -30525,13 +29979,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param dashboardId The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "projectId",
+            "variableName" : "dashboardId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the project.</p>",
+            "documentation" : "<p>The ID of the dashboard.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -30541,8 +29995,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "projectId", "projectArn" ],
-      "shapeName" : "CreateProjectResult",
+      "required" : [ "dashboardId", "dashboardArn" ],
+      "shapeName" : "CreateDashboardResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -30551,17 +30005,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "CreateProjectResult",
-        "variableName" : "createProjectResult",
-        "variableType" : "CreateProjectResult",
+        "variableDeclarationType" : "CreateDashboardResult",
+        "variableName" : "createDashboardResult",
+        "variableType" : "CreateDashboardResult",
         "documentation" : null,
-        "simpleType" : "CreateProjectResult",
-        "variableSetterType" : "CreateProjectResult"
+        "simpleType" : "CreateDashboardResult",
+        "variableSetterType" : "CreateDashboardResult"
       },
       "wrapper" : false
     },
-    "DashboardSummary" : {
-      "c2jName" : "DashboardSummary",
+    "CreateGatewayRequest" : {
+      "c2jName" : "CreateGatewayRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -30569,28 +30023,35 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains a dashboard summary.</p>",
+      "documentation" : "",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.DashboardSummary",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateGatewayRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : null,
+      "marshaller" : {
+        "action" : "CreateGateway",
+        "locationName" : null,
+        "requestUri" : "/20200301/gateways",
+        "target" : null,
+        "verb" : "POST",
+        "xmlNameSpaceUri" : null
+      },
       "members" : [ {
-        "c2jName" : "id",
-        "c2jShape" : "ID",
+        "c2jName" : "gatewayName",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the dashboard.</p>",
+        "documentation" : "<p>A unique, friendly name for the gateway.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
-        "getterMethodName" : "getId",
+        "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGatewayName",
+        "getterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@return A unique, friendly name for the gateway.*/",
+        "getterMethodName" : "getGatewayName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -30605,11 +30066,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
+          "marshallLocationName" : "gatewayName",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "id",
+          "unmarshallLocationName" : "gatewayName",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -30621,14 +30082,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Id",
+        "name" : "GatewayName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.*/",
-        "setterMethodName" : "setId",
+        "setterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.*/",
+        "setterMethodName" : "setGatewayName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "gatewayName",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -30638,30 +30099,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "gatewayName",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the dashboard.</p>",
+          "documentation" : "<p>A unique, friendly name for the gateway.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "name",
-        "c2jShape" : "Name",
+        "c2jName" : "gatewayPlatform",
+        "c2jShape" : "GatewayPlatform",
         "deprecated" : false,
-        "documentation" : "<p>The name of the dashboard</p>",
+        "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withName",
-        "getterDocumentation" : "/**<p>The name of the dashboard</p>\n@return The name of the dashboard*/",
-        "getterMethodName" : "getName",
+        "fluentSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGatewayPlatform",
+        "getterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@return The gateway's platform. You can only specify one platform in a gateway.*/",
+        "getterMethodName" : "getGatewayPlatform",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "GatewayPlatform",
           "documentation" : null
         },
         "http" : {
@@ -30674,11 +30135,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "name",
+          "marshallLocationName" : "gatewayPlatform",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "name",
+          "unmarshallLocationName" : "gatewayPlatform",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -30688,49 +30149,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Name",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "GatewayPlatform",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard*/",
-        "setterMethodName" : "setName",
+        "setterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.*/",
+        "setterMethodName" : "setGatewayPlatform",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
+          "variableDeclarationType" : "GatewayPlatform",
+          "variableName" : "gatewayPlatform",
+          "variableType" : "GatewayPlatform",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "GatewayPlatform",
+          "variableSetterType" : "GatewayPlatform"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "name",
-          "variableType" : "String",
-          "documentation" : "<p>The name of the dashboard</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "GatewayPlatform",
+          "variableName" : "gatewayPlatform",
+          "variableType" : "GatewayPlatform",
+          "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
+          "simpleType" : "GatewayPlatform",
+          "variableSetterType" : "GatewayPlatform"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "description",
-        "c2jShape" : "Description",
+        "c2jName" : "tags",
+        "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>The dashboard's description.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDescription",
-        "getterDocumentation" : "/**<p>The dashboard's description.</p>\n@return The dashboard's description.*/",
-        "getterMethodName" : "getDescription",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTags",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getTags",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.Map<String,String>",
           "documentation" : null
         },
         "http" : {
@@ -30743,11 +30204,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "description",
+          "marshallLocationName" : "tags",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "description",
+          "unmarshallLocationName" : "tags",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -30755,259 +30216,135 @@
         "jsonValue" : false,
         "list" : false,
         "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Description",
+        "map" : true,
+        "mapModel" : {
+          "implType" : "java.util.HashMap",
+          "interfaceType" : "java.util.Map",
+          "keyLocationName" : "key",
+          "keyModel" : null,
+          "keyType" : "String",
+          "valueLocationName" : "value",
+          "valueModel" : {
+            "c2jName" : "value",
+            "c2jShape" : "TagValue",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withValue",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getValue",
+            "getterModel" : {
+              "returnType" : "String",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "value",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "value",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "String",
+            "marshallingType" : "STRING",
+            "name" : "Value",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param value */",
+            "setterMethodName" : "setValue",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : true,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "valueType" : "String",
+          "entryType" : "Map.Entry<String, String>",
+          "keySimple" : true,
+          "templateImplType" : "java.util.HashMap<String,String>",
+          "templateType" : "java.util.Map<String,String>",
+          "valueList" : false,
+          "valueSimple" : true
+        },
+        "marshallingTargetClass" : "Map",
+        "marshallingType" : "MAP",
+        "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.*/",
-        "setterMethodName" : "setDescription",
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "description",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "description",
-          "variableType" : "String",
-          "documentation" : "<p>The dashboard's description.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "creationDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withCreationDate",
-        "getterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@return The date the dashboard was created, in Unix epoch time.*/",
-        "getterMethodName" : "getCreationDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "creationDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "creationDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "CreationDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.*/",
-        "setterMethodName" : "setCreationDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "creationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "lastUpdateDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@return The date the dashboard was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getLastUpdateDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "lastUpdateDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "lastUpdateDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "LastUpdateDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setLastUpdateDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "lastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "CreationDate" : {
-          "c2jName" : "creationDate",
-          "c2jShape" : "Timestamp",
-          "deprecated" : false,
-          "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withCreationDate",
-          "getterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@return The date the dashboard was created, in Unix epoch time.*/",
-          "getterMethodName" : "getCreationDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "creationDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "creationDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "CreationDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.*/",
-          "setterMethodName" : "setCreationDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "creationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "Description" : {
-          "c2jName" : "description",
-          "c2jShape" : "Description",
+        "GatewayName" : {
+          "c2jName" : "gatewayName",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The dashboard's description.</p>",
+          "documentation" : "<p>A unique, friendly name for the gateway.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDescription",
-          "getterDocumentation" : "/**<p>The dashboard's description.</p>\n@return The dashboard's description.*/",
-          "getterMethodName" : "getDescription",
+          "fluentSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGatewayName",
+          "getterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@return A unique, friendly name for the gateway.*/",
+          "getterMethodName" : "getGatewayName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -31022,11 +30359,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "description",
+            "marshallLocationName" : "gatewayName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "description",
+            "unmarshallLocationName" : "gatewayName",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -31038,14 +30375,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Description",
+          "name" : "GatewayName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.*/",
-          "setterMethodName" : "setDescription",
+          "setterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.*/",
+          "setterMethodName" : "setGatewayName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "description",
+            "variableName" : "gatewayName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -31055,31 +30392,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique, friendly name for the gateway.</p>\n@param gatewayName A unique, friendly name for the gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "description",
+            "variableName" : "gatewayName",
             "variableType" : "String",
-            "documentation" : "<p>The dashboard's description.</p>",
+            "documentation" : "<p>A unique, friendly name for the gateway.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
+        "GatewayPlatform" : {
+          "c2jName" : "gatewayPlatform",
+          "c2jShape" : "GatewayPlatform",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the dashboard.</p>",
+          "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
-          "getterMethodName" : "getId",
+          "fluentSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGatewayPlatform",
+          "getterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@return The gateway's platform. You can only specify one platform in a gateway.*/",
+          "getterMethodName" : "getGatewayPlatform",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "GatewayPlatform",
             "documentation" : null
           },
           "http" : {
@@ -31092,11 +30429,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
+            "marshallLocationName" : "gatewayPlatform",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "gatewayPlatform",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -31106,50 +30443,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Id",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "GatewayPlatform",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.*/",
+          "setterMethodName" : "setGatewayPlatform",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
+            "variableDeclarationType" : "GatewayPlatform",
+            "variableName" : "gatewayPlatform",
+            "variableType" : "GatewayPlatform",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "GatewayPlatform",
+            "variableSetterType" : "GatewayPlatform"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The gateway's platform. You can only specify one platform in a gateway.</p>\n@param gatewayPlatform The gateway's platform. You can only specify one platform in a gateway.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "id",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the dashboard.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "GatewayPlatform",
+            "variableName" : "gatewayPlatform",
+            "variableType" : "GatewayPlatform",
+            "documentation" : "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
+            "simpleType" : "GatewayPlatform",
+            "variableSetterType" : "GatewayPlatform"
           },
           "xmlNameSpaceUri" : null
         },
-        "LastUpdateDate" : {
-          "c2jName" : "lastUpdateDate",
-          "c2jShape" : "Timestamp",
+        "Tags" : {
+          "c2jName" : "tags",
+          "c2jShape" : "TagMap",
           "deprecated" : false,
-          "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@return The date the dashboard was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getLastUpdateDate",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTags",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getTags",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "java.util.Map<String,String>",
             "documentation" : null
           },
           "http" : {
@@ -31162,11 +30499,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "lastUpdateDate",
+            "marshallLocationName" : "tags",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "lastUpdateDate",
+            "unmarshallLocationName" : "tags",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -31174,134 +30511,145 @@
           "jsonValue" : false,
           "list" : false,
           "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "LastUpdateDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.*/",
-          "setterMethodName" : "setLastUpdateDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "lastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "Name" : {
-          "c2jName" : "name",
-          "c2jShape" : "Name",
-          "deprecated" : false,
-          "documentation" : "<p>The name of the dashboard</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withName",
-          "getterDocumentation" : "/**<p>The name of the dashboard</p>\n@return The name of the dashboard*/",
-          "getterMethodName" : "getName",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "name",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "name",
-            "uri" : false
+          "map" : true,
+          "mapModel" : {
+            "implType" : "java.util.HashMap",
+            "interfaceType" : "java.util.Map",
+            "keyLocationName" : "key",
+            "keyModel" : null,
+            "keyType" : "String",
+            "valueLocationName" : "value",
+            "valueModel" : {
+              "c2jName" : "value",
+              "c2jShape" : "TagValue",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withValue",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getValue",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "value",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "value",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Value",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param value */",
+              "setterMethodName" : "setValue",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "valueType" : "String",
+            "entryType" : "Map.Entry<String, String>",
+            "keySimple" : true,
+            "templateImplType" : "java.util.HashMap<String,String>",
+            "templateType" : "java.util.Map<String,String>",
+            "valueList" : false,
+            "valueSimple" : true
           },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Name",
+          "marshallingTargetClass" : "Map",
+          "marshallingType" : "MAP",
+          "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard*/",
-          "setterMethodName" : "setName",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "name",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "name",
-            "variableType" : "String",
-            "documentation" : "<p>The name of the dashboard</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id", "name" ],
-      "shapeName" : "DashboardSummary",
+      "required" : [ "gatewayName", "gatewayPlatform" ],
+      "shapeName" : "CreateGatewayRequest",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DashboardSummary",
-        "variableName" : "dashboardSummary",
-        "variableType" : "DashboardSummary",
+        "variableDeclarationType" : "CreateGatewayRequest",
+        "variableName" : "createGatewayRequest",
+        "variableType" : "CreateGatewayRequest",
         "documentation" : null,
-        "simpleType" : "DashboardSummary",
-        "variableSetterType" : "DashboardSummary"
+        "simpleType" : "CreateGatewayRequest",
+        "variableSetterType" : "CreateGatewayRequest"
       },
       "wrapper" : false
     },
-    "DeleteAccessPolicyRequest" : {
-      "c2jName" : "DeleteAccessPolicyRequest",
+    "CreateGatewayResult" : {
+      "c2jName" : "CreateGatewayResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -31313,31 +30661,24 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAccessPolicyRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateGatewayResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeleteAccessPolicy",
-        "locationName" : null,
-        "requestUri" : "/access-policies/{accessPolicyId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "accessPolicyId",
+        "c2jName" : "gatewayId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+        "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyId",
-        "getterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@return The ID of the access policy to be deleted.*/",
-        "getterMethodName" : "getAccessPolicyId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGatewayId",
+        "getterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+        "getterMethodName" : "getGatewayId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -31350,14 +30691,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "accessPolicyId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "gatewayId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyId",
-          "uri" : true
+          "unmarshallLocationName" : "gatewayId",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -31368,14 +30709,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AccessPolicyId",
+        "name" : "GatewayId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.*/",
-        "setterMethodName" : "setAccessPolicyId",
+        "setterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+        "setterMethodName" : "setGatewayId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
+          "variableName" : "gatewayId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -31385,28 +30726,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
+          "variableName" : "gatewayId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+          "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+        "c2jName" : "gatewayArn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGatewayArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
+        "getterMethodName" : "getGatewayArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -31419,16 +30760,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "clientToken",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "gatewayArn",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "gatewayArn",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -31437,14 +30778,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "GatewayArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
+        "setterMethodName" : "setGatewayArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "gatewayArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -31454,30 +30795,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "gatewayArn",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicyId" : {
-          "c2jName" : "accessPolicyId",
-          "c2jShape" : "ID",
+        "GatewayArn" : {
+          "c2jName" : "gatewayArn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyId",
-          "getterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@return The ID of the access policy to be deleted.*/",
-          "getterMethodName" : "getAccessPolicyId",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGatewayArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
+          "getterMethodName" : "getGatewayArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -31490,14 +30831,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "accessPolicyId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "gatewayArn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyId",
-            "uri" : true
+            "unmarshallLocationName" : "gatewayArn",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -31508,14 +30849,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AccessPolicyId",
+          "name" : "GatewayArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.*/",
-          "setterMethodName" : "setAccessPolicyId",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>*/",
+          "setterMethodName" : "setGatewayArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "gatewayArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -31525,29 +30866,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>\n@param gatewayArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "gatewayArn",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "GatewayId" : {
+          "c2jName" : "gatewayId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGatewayId",
+          "getterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@return The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+          "getterMethodName" : "getGatewayId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -31560,16 +30901,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "gatewayId",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "gatewayId",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -31578,14 +30919,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "GatewayId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.*/",
+          "setterMethodName" : "setGatewayId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "gatewayId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -31595,65 +30936,24 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>\n@param gatewayId The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "gatewayId",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicyId" ],
-      "shapeName" : "DeleteAccessPolicyRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAccessPolicyRequest",
-        "variableName" : "deleteAccessPolicyRequest",
-        "variableType" : "DeleteAccessPolicyRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteAccessPolicyRequest",
-        "variableSetterType" : "DeleteAccessPolicyRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteAccessPolicyResult" : {
-      "c2jName" : "DeleteAccessPolicyResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAccessPolicyResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "DeleteAccessPolicyResult",
+      "required" : [ "gatewayId", "gatewayArn" ],
+      "shapeName" : "CreateGatewayResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -31662,17 +30962,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAccessPolicyResult",
-        "variableName" : "deleteAccessPolicyResult",
-        "variableType" : "DeleteAccessPolicyResult",
+        "variableDeclarationType" : "CreateGatewayResult",
+        "variableName" : "createGatewayResult",
+        "variableType" : "CreateGatewayResult",
         "documentation" : null,
-        "simpleType" : "DeleteAccessPolicyResult",
-        "variableSetterType" : "DeleteAccessPolicyResult"
+        "simpleType" : "CreateGatewayResult",
+        "variableSetterType" : "CreateGatewayResult"
       },
       "wrapper" : false
     },
-    "DeleteAssetModelRequest" : {
-      "c2jName" : "DeleteAssetModelRequest",
+    "CreatePortalRequest" : {
+      "c2jName" : "CreatePortalRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -31684,31 +30984,31 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAssetModelRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreatePortalRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : {
-        "action" : "DeleteAssetModel",
+        "action" : "CreatePortal",
         "locationName" : null,
-        "requestUri" : "/asset-models/{assetModelId}",
+        "requestUri" : "/portals",
         "target" : null,
-        "verb" : "DELETE",
+        "verb" : "POST",
         "xmlNameSpaceUri" : null
       },
       "members" : [ {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "portalName",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model to delete.</p>",
+        "documentation" : "<p>A friendly name for the portal.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@return The ID of the asset model to delete.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalName",
+        "getterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@return A friendly name for the portal.*/",
+        "getterMethodName" : "getPortalName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -31721,14 +31021,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetModelId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalName",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
-          "uri" : true
+          "unmarshallLocationName" : "portalName",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -31739,14 +31039,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "PortalName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.*/",
+        "setterMethodName" : "setPortalName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "portalName",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -31756,13 +31056,151 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "portalName",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model to delete.</p>",
+          "documentation" : "<p>A friendly name for the portal.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "portalDescription",
+        "c2jShape" : "Description",
+        "deprecated" : false,
+        "documentation" : "<p>A description for the portal.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalDescription",
+        "getterDocumentation" : "/**<p>A description for the portal.</p>\n@return A description for the portal.*/",
+        "getterMethodName" : "getPortalDescription",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalDescription",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "portalDescription",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PortalDescription",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.*/",
+        "setterMethodName" : "setPortalDescription",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "portalDescription",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "portalDescription",
+          "variableType" : "String",
+          "documentation" : "<p>A description for the portal.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "portalContactEmail",
+        "c2jShape" : "Email",
+        "deprecated" : false,
+        "documentation" : "<p>The AWS administrator's contact email address.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalContactEmail",
+        "getterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@return The AWS administrator's contact email address.*/",
+        "getterMethodName" : "getPortalContactEmail",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalContactEmail",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "portalContactEmail",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PortalContactEmail",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.*/",
+        "setterMethodName" : "setPortalContactEmail",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "portalContactEmail",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "portalContactEmail",
+          "variableType" : "String",
+          "documentation" : "<p>The AWS administrator's contact email address.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -31790,10 +31228,10 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
           "marshallLocationName" : "clientToken",
-          "queryString" : true,
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
           "unmarshallLocationName" : "clientToken",
@@ -31836,202 +31274,20 @@
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model to delete.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@return The ID of the asset model to delete.*/",
-          "getterMethodName" : "getAssetModelId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetModelId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
-            "uri" : true
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.*/",
-          "setterMethodName" : "setAssetModelId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model to delete.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelId" ],
-      "shapeName" : "DeleteAssetModelRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAssetModelRequest",
-        "variableName" : "deleteAssetModelRequest",
-        "variableType" : "DeleteAssetModelRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteAssetModelRequest",
-        "variableSetterType" : "DeleteAssetModelRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteAssetModelResult" : {
-      "c2jName" : "DeleteAssetModelResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAssetModelResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "assetModelStatus",
-        "c2jShape" : "AssetModelStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelStatus",
-        "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getAssetModelStatus",
-        "getterModel" : {
-          "returnType" : "AssetModelStatus",
-          "documentation" : null
+      }, {
+        "c2jName" : "portalLogoImageFile",
+        "c2jShape" : "ImageFile",
+        "deprecated" : false,
+        "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalLogoImageFile",
+        "getterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@return A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
+        "getterMethodName" : "getPortalLogoImageFile",
+        "getterModel" : {
+          "returnType" : "ImageFile",
+          "documentation" : null
         },
         "http" : {
           "additionalMarshallingPath" : null,
@@ -32043,11 +31299,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelStatus",
+          "marshallLocationName" : "portalLogoImageFile",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelStatus",
+          "unmarshallLocationName" : "portalLogoImageFile",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -32059,167 +31315,45 @@
         "mapModel" : null,
         "marshallingTargetClass" : "StructuredPojo",
         "marshallingType" : "STRUCTURED",
-        "name" : "AssetModelStatus",
+        "name" : "PortalLogoImageFile",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setAssetModelStatus",
+        "setterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
+        "setterMethodName" : "setPortalLogoImageFile",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
+          "variableDeclarationType" : "ImageFile",
+          "variableName" : "portalLogoImageFile",
+          "variableType" : "ImageFile",
           "documentation" : "",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
+          "simpleType" : "ImageFile",
+          "variableSetterType" : "ImageFile"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
+          "variableDeclarationType" : "ImageFile",
+          "variableName" : "portalLogoImageFile",
+          "variableType" : "ImageFile",
+          "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
+          "simpleType" : "ImageFile",
+          "variableSetterType" : "ImageFile"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetModelStatus" : {
-          "c2jName" : "assetModelStatus",
-          "c2jShape" : "AssetModelStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelStatus",
-          "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getAssetModelStatus",
-          "getterModel" : {
-            "returnType" : "AssetModelStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelStatus",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelStatus",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetModelStatus",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setAssetModelStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelStatus" ],
-      "shapeName" : "DeleteAssetModelResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAssetModelResult",
-        "variableName" : "deleteAssetModelResult",
-        "variableType" : "DeleteAssetModelResult",
-        "documentation" : null,
-        "simpleType" : "DeleteAssetModelResult",
-        "variableSetterType" : "DeleteAssetModelResult"
-      },
-      "wrapper" : false
-    },
-    "DeleteAssetRequest" : {
-      "c2jName" : "DeleteAssetRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAssetRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeleteAsset",
-        "locationName" : null,
-        "requestUri" : "/assets/{assetId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
+      }, {
+        "c2jName" : "roleArn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset to delete.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@return The ID of the asset to delete.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withRoleArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getRoleArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -32232,14 +31366,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "roleArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : true
+          "unmarshallLocationName" : "roleArn",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -32250,14 +31384,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "name" : "RoleArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setRoleArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "roleArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -32267,28 +31401,181 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "roleArn",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset to delete.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+        "c2jName" : "tags",
+        "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTags",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getTags",
+        "getterModel" : {
+          "returnType" : "java.util.Map<String,String>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "tags",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "tags",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : true,
+        "mapModel" : {
+          "implType" : "java.util.HashMap",
+          "interfaceType" : "java.util.Map",
+          "keyLocationName" : "key",
+          "keyModel" : null,
+          "keyType" : "String",
+          "valueLocationName" : "value",
+          "valueModel" : {
+            "c2jName" : "value",
+            "c2jShape" : "TagValue",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withValue",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getValue",
+            "getterModel" : {
+              "returnType" : "String",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "value",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "value",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "String",
+            "marshallingType" : "STRING",
+            "name" : "Value",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param value */",
+            "setterMethodName" : "setValue",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : true,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "valueType" : "String",
+          "entryType" : "Map.Entry<String, String>",
+          "keySimple" : true,
+          "templateImplType" : "java.util.HashMap<String,String>",
+          "templateType" : "java.util.Map<String,String>",
+          "valueList" : false,
+          "valueSimple" : true
+        },
+        "marshallingTargetClass" : "Map",
+        "marshallingType" : "MAP",
+        "name" : "Tags",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setTags",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "portalAuthMode",
+        "c2jShape" : "AuthMode",
+        "deprecated" : false,
+        "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "AuthMode",
+        "fluentSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
+        "fluentSetterMethodName" : "withPortalAuthMode",
+        "getterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@return The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
+        "getterMethodName" : "getPortalAuthMode",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -32301,16 +31588,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "clientToken",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalAuthMode",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "portalAuthMode",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -32319,14 +31606,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "PortalAuthMode",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
+        "setterMethodName" : "setPortalAuthMode",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "portalAuthMode",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -32336,30 +31623,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "portalAuthMode",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset to delete.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@return The ID of the asset to delete.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -32372,16 +31659,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "clientToken",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
-            "uri" : true
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -32390,14 +31677,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -32407,29 +31694,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset to delete.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "PortalAuthMode" : {
+          "c2jName" : "portalAuthMode",
+          "c2jShape" : "AuthMode",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "enumType" : "AuthMode",
+          "fluentSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
+          "fluentSetterMethodName" : "withPortalAuthMode",
+          "getterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@return The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
+          "getterMethodName" : "getPortalAuthMode",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -32442,16 +31729,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalAuthMode",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "portalAuthMode",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -32460,14 +31747,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "PortalAuthMode",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@see AuthMode*/",
+          "setterMethodName" : "setPortalAuthMode",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "portalAuthMode",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -32477,142 +31764,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>\n@param portalAuthMode The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see AuthMode*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "portalAuthMode",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetId" ],
-      "shapeName" : "DeleteAssetRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAssetRequest",
-        "variableName" : "deleteAssetRequest",
-        "variableType" : "DeleteAssetRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteAssetRequest",
-        "variableSetterType" : "DeleteAssetRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteAssetResult" : {
-      "c2jName" : "DeleteAssetResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAssetResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "assetStatus",
-        "c2jShape" : "AssetStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetStatus",
-        "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getAssetStatus",
-        "getterModel" : {
-          "returnType" : "AssetStatus",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetStatus",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetStatus",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AssetStatus",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setAssetStatus",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
-          "documentation" : "",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
-          "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "AssetStatus" : {
-          "c2jName" : "assetStatus",
-          "c2jShape" : "AssetStatus",
+        "PortalContactEmail" : {
+          "c2jName" : "portalContactEmail",
+          "c2jShape" : "Email",
           "deprecated" : false,
-          "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "documentation" : "<p>The AWS administrator's contact email address.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetStatus",
-          "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getAssetStatus",
+          "fluentSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalContactEmail",
+          "getterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@return The AWS administrator's contact email address.*/",
+          "getterMethodName" : "getPortalContactEmail",
           "getterModel" : {
-            "returnType" : "AssetStatus",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -32625,11 +31801,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetStatus",
+            "marshallLocationName" : "portalContactEmail",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetStatus",
+            "unmarshallLocationName" : "portalContactEmail",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -32639,238 +31815,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetStatus",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PortalContactEmail",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setAssetStatus",
+          "setterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.*/",
+          "setterMethodName" : "setPortalContactEmail",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "assetStatus",
-            "variableType" : "AssetStatus",
+            "variableDeclarationType" : "String",
+            "variableName" : "portalContactEmail",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The AWS administrator's contact email address.</p>\n@param portalContactEmail The AWS administrator's contact email address.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetStatus",
-            "variableName" : "assetStatus",
-            "variableType" : "AssetStatus",
-            "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "AssetStatus",
-            "variableSetterType" : "AssetStatus"
+            "variableDeclarationType" : "String",
+            "variableName" : "portalContactEmail",
+            "variableType" : "String",
+            "documentation" : "<p>The AWS administrator's contact email address.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "assetStatus" ],
-      "shapeName" : "DeleteAssetResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteAssetResult",
-        "variableName" : "deleteAssetResult",
-        "variableType" : "DeleteAssetResult",
-        "documentation" : null,
-        "simpleType" : "DeleteAssetResult",
-        "variableSetterType" : "DeleteAssetResult"
-      },
-      "wrapper" : false
-    },
-    "DeleteDashboardRequest" : {
-      "c2jName" : "DeleteDashboardRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteDashboardRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeleteDashboard",
-        "locationName" : null,
-        "requestUri" : "/dashboards/{dashboardId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "dashboardId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the dashboard to delete.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withDashboardId",
-        "getterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@return The ID of the dashboard to delete.*/",
-        "getterMethodName" : "getDashboardId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "dashboardId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "dashboardId",
-          "uri" : true
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "DashboardId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.*/",
-        "setterMethodName" : "setDashboardId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "dashboardId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the dashboard to delete.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "clientToken",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
-        },
-        "idempotencyToken" : true,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ClientToken",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "PortalDescription" : {
+          "c2jName" : "portalDescription",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>A description for the portal.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalDescription",
+          "getterDocumentation" : "/**<p>A description for the portal.</p>\n@return A description for the portal.*/",
+          "getterMethodName" : "getPortalDescription",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -32883,16 +31869,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalDescription",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "portalDescription",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -32901,14 +31887,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "PortalDescription",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.*/",
+          "setterMethodName" : "setPortalDescription",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "portalDescription",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -32918,31 +31904,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A description for the portal.</p>\n@param portalDescription A description for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "portalDescription",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>A description for the portal.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "DashboardId" : {
-          "c2jName" : "dashboardId",
-          "c2jShape" : "ID",
+        "PortalLogoImageFile" : {
+          "c2jName" : "portalLogoImageFile",
+          "c2jShape" : "ImageFile",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the dashboard to delete.</p>",
+          "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withDashboardId",
-          "getterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@return The ID of the dashboard to delete.*/",
-          "getterMethodName" : "getDashboardId",
+          "fluentSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalLogoImageFile",
+          "getterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@return A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
+          "getterMethodName" : "getPortalLogoImageFile",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "ImageFile",
             "documentation" : null
           },
           "http" : {
@@ -32953,14 +31939,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "dashboardId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalLogoImageFile",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "dashboardId",
-            "uri" : true
+            "unmarshallLocationName" : "portalLogoImageFile",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -32969,210 +31955,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "DashboardId",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "PortalLogoImageFile",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.*/",
-          "setterMethodName" : "setDashboardId",
+          "setterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.*/",
+          "setterMethodName" : "setPortalLogoImageFile",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardId",
-            "variableType" : "String",
+            "variableDeclarationType" : "ImageFile",
+            "variableName" : "portalLogoImageFile",
+            "variableType" : "ImageFile",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "ImageFile",
+            "variableSetterType" : "ImageFile"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>\n@param portalLogoImageFile A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "dashboardId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the dashboard to delete.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "ImageFile",
+            "variableName" : "portalLogoImageFile",
+            "variableType" : "ImageFile",
+            "documentation" : "<p>A logo image to display in the portal. Upload a square, high-resolution image. The image is displayed on a dark background.</p>",
+            "simpleType" : "ImageFile",
+            "variableSetterType" : "ImageFile"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "dashboardId" ],
-      "shapeName" : "DeleteDashboardRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteDashboardRequest",
-        "variableName" : "deleteDashboardRequest",
-        "variableType" : "DeleteDashboardRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteDashboardRequest",
-        "variableSetterType" : "DeleteDashboardRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteDashboardResult" : {
-      "c2jName" : "DeleteDashboardResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteDashboardResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "DeleteDashboardResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteDashboardResult",
-        "variableName" : "deleteDashboardResult",
-        "variableType" : "DeleteDashboardResult",
-        "documentation" : null,
-        "simpleType" : "DeleteDashboardResult",
-        "variableSetterType" : "DeleteDashboardResult"
-      },
-      "wrapper" : false
-    },
-    "DeleteGatewayRequest" : {
-      "c2jName" : "DeleteGatewayRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteGatewayRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeleteGateway",
-        "locationName" : null,
-        "requestUri" : "/20200301/gateways/{gatewayId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "gatewayId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the gateway to delete.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGatewayId",
-        "getterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@return The ID of the gateway to delete.*/",
-        "getterMethodName" : "getGatewayId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "gatewayId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "gatewayId",
-          "uri" : true
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "GatewayId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.*/",
-        "setterMethodName" : "setGatewayId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "gatewayId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "gatewayId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the gateway to delete.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "GatewayId" : {
-          "c2jName" : "gatewayId",
-          "c2jShape" : "ID",
+        "PortalName" : {
+          "c2jName" : "portalName",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the gateway to delete.</p>",
+          "documentation" : "<p>A friendly name for the portal.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGatewayId",
-          "getterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@return The ID of the gateway to delete.*/",
-          "getterMethodName" : "getGatewayId",
+          "fluentSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalName",
+          "getterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@return A friendly name for the portal.*/",
+          "getterMethodName" : "getPortalName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -33185,14 +32009,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "gatewayId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "gatewayId",
-            "uri" : true
+            "unmarshallLocationName" : "portalName",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -33203,14 +32027,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "GatewayId",
+          "name" : "PortalName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.*/",
-          "setterMethodName" : "setGatewayId",
+          "setterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.*/",
+          "setterMethodName" : "setPortalName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayId",
+            "variableName" : "portalName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -33220,260 +32044,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A friendly name for the portal.</p>\n@param portalName A friendly name for the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "gatewayId",
+            "variableName" : "portalName",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the gateway to delete.</p>",
+            "documentation" : "<p>A friendly name for the portal.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "gatewayId" ],
-      "shapeName" : "DeleteGatewayRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteGatewayRequest",
-        "variableName" : "deleteGatewayRequest",
-        "variableType" : "DeleteGatewayRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteGatewayRequest",
-        "variableSetterType" : "DeleteGatewayRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteGatewayResult" : {
-      "c2jName" : "DeleteGatewayResult",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : null,
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteGatewayResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "DeleteGatewayResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteGatewayResult",
-        "variableName" : "deleteGatewayResult",
-        "variableType" : "DeleteGatewayResult",
-        "documentation" : null,
-        "simpleType" : "DeleteGatewayResult",
-        "variableSetterType" : "DeleteGatewayResult"
-      },
-      "wrapper" : false
-    },
-    "DeletePortalRequest" : {
-      "c2jName" : "DeletePortalRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeletePortalRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeletePortal",
-        "locationName" : null,
-        "requestUri" : "/portals/{portalId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "portalId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the portal to delete.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalId",
-        "getterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@return The ID of the portal to delete.*/",
-        "getterMethodName" : "getPortalId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "portalId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "portalId",
-          "uri" : true
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PortalId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.*/",
-        "setterMethodName" : "setPortalId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "portalId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the portal to delete.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
-        "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "clientToken",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
-          "uri" : false
-        },
-        "idempotencyToken" : true,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ClientToken",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
-          "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
+        "RoleArn" : {
+          "c2jName" : "roleArn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withRoleArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getRoleArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -33486,16 +32079,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "roleArn",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
+            "unmarshallLocationName" : "roleArn",
             "uri" : false
           },
-          "idempotencyToken" : true,
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -33504,14 +32097,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "ClientToken",
+          "name" : "RoleArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setRoleArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "roleArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -33521,31 +32114,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param roleArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
+            "variableName" : "roleArn",
             "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "PortalId" : {
-          "c2jName" : "portalId",
-          "c2jShape" : "ID",
+        "Tags" : {
+          "c2jName" : "tags",
+          "c2jShape" : "TagMap",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the portal to delete.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalId",
-          "getterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@return The ID of the portal to delete.*/",
-          "getterMethodName" : "getPortalId",
-          "getterModel" : {
-            "returnType" : "String",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTags",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getTags",
+          "getterModel" : {
+            "returnType" : "java.util.Map<String,String>",
             "documentation" : null
           },
           "http" : {
@@ -33556,50 +32149,134 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "portalId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "tags",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "portalId",
-            "uri" : true
+            "unmarshallLocationName" : "tags",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
           "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "PortalId",
+          "map" : true,
+          "mapModel" : {
+            "implType" : "java.util.HashMap",
+            "interfaceType" : "java.util.Map",
+            "keyLocationName" : "key",
+            "keyModel" : null,
+            "keyType" : "String",
+            "valueLocationName" : "value",
+            "valueModel" : {
+              "c2jName" : "value",
+              "c2jShape" : "TagValue",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withValue",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getValue",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "value",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "value",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Value",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param value */",
+              "setterMethodName" : "setValue",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "valueType" : "String",
+            "entryType" : "Map.Entry<String, String>",
+            "keySimple" : true,
+            "templateImplType" : "java.util.HashMap<String,String>",
+            "templateType" : "java.util.Map<String,String>",
+            "valueList" : false,
+            "valueSimple" : true
+          },
+          "marshallingTargetClass" : "Map",
+          "marshallingType" : "MAP",
+          "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.*/",
-          "setterMethodName" : "setPortalId",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "portalId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the portal to delete.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "xmlNameSpaceUri" : null
         }
@@ -33607,24 +32284,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "portalId" ],
-      "shapeName" : "DeletePortalRequest",
+      "required" : [ "portalName", "portalContactEmail", "roleArn" ],
+      "shapeName" : "CreatePortalRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DeletePortalRequest",
-        "variableName" : "deletePortalRequest",
-        "variableType" : "DeletePortalRequest",
+        "variableDeclarationType" : "CreatePortalRequest",
+        "variableName" : "createPortalRequest",
+        "variableType" : "CreatePortalRequest",
         "documentation" : null,
-        "simpleType" : "DeletePortalRequest",
-        "variableSetterType" : "DeletePortalRequest"
+        "simpleType" : "CreatePortalRequest",
+        "variableSetterType" : "CreatePortalRequest"
       },
       "wrapper" : false
     },
-    "DeletePortalResult" : {
-      "c2jName" : "DeletePortalResponse",
+    "CreatePortalResult" : {
+      "c2jName" : "CreatePortalResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -33636,7 +32313,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeletePortalResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreatePortalResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -33644,18 +32321,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "portalStatus",
-        "c2jShape" : "PortalStatus",
+        "c2jName" : "portalId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+        "documentation" : "<p>The ID of the created portal.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPortalStatus",
-        "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "getterMethodName" : "getPortalStatus",
+        "fluentSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalId",
+        "getterDocumentation" : "/**<p>The ID of the created portal.</p>\n@return The ID of the created portal.*/",
+        "getterMethodName" : "getPortalId",
         "getterModel" : {
-          "returnType" : "PortalStatus",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -33668,11 +32345,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "portalStatus",
+          "marshallLocationName" : "portalId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "portalStatus",
+          "unmarshallLocationName" : "portalId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -33682,169 +32359,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "PortalStatus",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PortalId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-        "setterMethodName" : "setPortalStatus",
+        "setterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.*/",
+        "setterMethodName" : "setPortalId",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PortalStatus",
-          "variableName" : "portalStatus",
-          "variableType" : "PortalStatus",
+          "variableDeclarationType" : "String",
+          "variableName" : "portalId",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "PortalStatus",
-          "variableSetterType" : "PortalStatus"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "PortalStatus",
-          "variableName" : "portalStatus",
-          "variableType" : "PortalStatus",
-          "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-          "simpleType" : "PortalStatus",
-          "variableSetterType" : "PortalStatus"
+          "variableDeclarationType" : "String",
+          "variableName" : "portalId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the created portal.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "PortalStatus" : {
-          "c2jName" : "portalStatus",
-          "c2jShape" : "PortalStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPortalStatus",
-          "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "getterMethodName" : "getPortalStatus",
-          "getterModel" : {
-            "returnType" : "PortalStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "portalStatus",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "portalStatus",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "PortalStatus",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
-          "setterMethodName" : "setPortalStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "PortalStatus",
-            "variableName" : "portalStatus",
-            "variableType" : "PortalStatus",
-            "documentation" : "",
-            "simpleType" : "PortalStatus",
-            "variableSetterType" : "PortalStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "PortalStatus",
-            "variableName" : "portalStatus",
-            "variableType" : "PortalStatus",
-            "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
-            "simpleType" : "PortalStatus",
-            "variableSetterType" : "PortalStatus"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "portalStatus" ],
-      "shapeName" : "DeletePortalResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeletePortalResult",
-        "variableName" : "deletePortalResult",
-        "variableType" : "DeletePortalResult",
-        "documentation" : null,
-        "simpleType" : "DeletePortalResult",
-        "variableSetterType" : "DeletePortalResult"
-      },
-      "wrapper" : false
-    },
-    "DeleteProjectRequest" : {
-      "c2jName" : "DeleteProjectRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteProjectRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DeleteProject",
-        "locationName" : null,
-        "requestUri" : "/projects/{projectId}",
-        "target" : null,
-        "verb" : "DELETE",
-        "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "projectId",
-        "c2jShape" : "ID",
+      }, {
+        "c2jName" : "portalArn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the project.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withProjectId",
-        "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
-        "getterMethodName" : "getProjectId",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
+        "getterMethodName" : "getPortalArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -33857,14 +32412,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "projectId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalArn",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "projectId",
-          "uri" : true
+          "unmarshallLocationName" : "portalArn",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -33875,14 +32430,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ProjectId",
+        "name" : "PortalArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
-        "setterMethodName" : "setProjectId",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
+        "setterMethodName" : "setPortalArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "portalArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -33892,28 +32447,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "projectId",
+          "variableName" : "portalArn",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the project.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "clientToken",
-        "c2jShape" : "ClientToken",
+        "c2jName" : "portalStartUrl",
+        "c2jShape" : "Url",
         "deprecated" : false,
-        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withClientToken",
-        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "getterMethodName" : "getClientToken",
+        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalStartUrl",
+        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
+        "getterMethodName" : "getPortalStartUrl",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -33926,16 +32481,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "clientToken",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalStartUrl",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "clientToken",
+          "unmarshallLocationName" : "portalStartUrl",
           "uri" : false
         },
-        "idempotencyToken" : true,
+        "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -33944,14 +32499,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "ClientToken",
+        "name" : "PortalStartUrl",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-        "setterMethodName" : "setClientToken",
+        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
+        "setterMethodName" : "setPortalStartUrl",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "portalStartUrl",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -33961,261 +32516,97 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "clientToken",
+          "variableName" : "portalStartUrl",
           "variableType" : "String",
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "ClientToken" : {
-          "c2jName" : "clientToken",
-          "c2jShape" : "ClientToken",
-          "deprecated" : false,
-          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withClientToken",
-          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "getterMethodName" : "getClientToken",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "clientToken",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "clientToken",
-            "uri" : false
-          },
-          "idempotencyToken" : true,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ClientToken",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
-          "setterMethodName" : "setClientToken",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "clientToken",
-            "variableType" : "String",
-            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "portalStatus",
+        "c2jShape" : "PortalStatus",
+        "deprecated" : false,
+        "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalStatus",
+        "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getPortalStatus",
+        "getterModel" : {
+          "returnType" : "PortalStatus",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "portalStatus",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "portalStatus",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "PortalStatus",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setPortalStatus",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PortalStatus",
+          "variableName" : "portalStatus",
+          "variableType" : "PortalStatus",
+          "documentation" : "",
+          "simpleType" : "PortalStatus",
+          "variableSetterType" : "PortalStatus"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PortalStatus",
+          "variableName" : "portalStatus",
+          "variableType" : "PortalStatus",
+          "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "PortalStatus",
+          "variableSetterType" : "PortalStatus"
         },
-        "ProjectId" : {
-          "c2jName" : "projectId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the project.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withProjectId",
-          "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
-          "getterMethodName" : "getProjectId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "projectId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "projectId",
-            "uri" : true
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ProjectId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
-          "setterMethodName" : "setProjectId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "projectId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the project.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "projectId" ],
-      "shapeName" : "DeleteProjectRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteProjectRequest",
-        "variableName" : "deleteProjectRequest",
-        "variableType" : "DeleteProjectRequest",
-        "documentation" : null,
-        "simpleType" : "DeleteProjectRequest",
-        "variableSetterType" : "DeleteProjectRequest"
-      },
-      "wrapper" : false
-    },
-    "DeleteProjectResult" : {
-      "c2jName" : "DeleteProjectResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteProjectResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "DeleteProjectResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DeleteProjectResult",
-        "variableName" : "deleteProjectResult",
-        "variableType" : "DeleteProjectResult",
-        "documentation" : null,
-        "simpleType" : "DeleteProjectResult",
-        "variableSetterType" : "DeleteProjectResult"
-      },
-      "wrapper" : false
-    },
-    "DescribeAccessPolicyRequest" : {
-      "c2jName" : "DescribeAccessPolicyRequest",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAccessPolicyRequest",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DescribeAccessPolicy",
-        "locationName" : null,
-        "requestUri" : "/access-policies/{accessPolicyId}",
-        "target" : null,
-        "verb" : "GET",
         "xmlNameSpaceUri" : null
-      },
-      "members" : [ {
-        "c2jName" : "accessPolicyId",
-        "c2jShape" : "ID",
+      }, {
+        "c2jName" : "ssoApplicationId",
+        "c2jShape" : "SSOApplicationId",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the access policy.</p>",
+        "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyId",
-        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-        "getterMethodName" : "getAccessPolicyId",
+        "fluentSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withSsoApplicationId",
+        "getterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@return The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
+        "getterMethodName" : "getSsoApplicationId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -34228,14 +32619,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "accessPolicyId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "ssoApplicationId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyId",
-          "uri" : true
+          "unmarshallLocationName" : "ssoApplicationId",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -34246,14 +32637,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AccessPolicyId",
+        "name" : "SsoApplicationId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-        "setterMethodName" : "setAccessPolicyId",
+        "setterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
+        "setterMethodName" : "setSsoApplicationId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
+          "variableName" : "ssoApplicationId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -34263,30 +32654,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
+          "variableName" : "ssoApplicationId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the access policy.</p>",
+          "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicyId" : {
-          "c2jName" : "accessPolicyId",
-          "c2jShape" : "ID",
+        "PortalArn" : {
+          "c2jName" : "portalArn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the access policy.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyId",
-          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-          "getterMethodName" : "getAccessPolicyId",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
+          "getterMethodName" : "getPortalArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -34299,14 +32690,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "accessPolicyId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalArn",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyId",
-            "uri" : true
+            "unmarshallLocationName" : "portalArn",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -34317,14 +32708,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AccessPolicyId",
+          "name" : "PortalArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-          "setterMethodName" : "setAccessPolicyId",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>*/",
+          "setterMethodName" : "setPortalArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "portalArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -34334,138 +32725,359 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>\n@param portalArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "portalArn",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the access policy.</p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicyId" ],
-      "shapeName" : "DescribeAccessPolicyRequest",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAccessPolicyRequest",
-        "variableName" : "describeAccessPolicyRequest",
-        "variableType" : "DescribeAccessPolicyRequest",
-        "documentation" : null,
-        "simpleType" : "DescribeAccessPolicyRequest",
-        "variableSetterType" : "DescribeAccessPolicyRequest"
-      },
-      "wrapper" : false
-    },
-    "DescribeAccessPolicyResult" : {
-      "c2jName" : "DescribeAccessPolicyResponse",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAccessPolicyResult",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "accessPolicyId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the access policy.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyId",
-        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-        "getterMethodName" : "getAccessPolicyId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
         },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyId",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyId",
-          "uri" : false
+        "PortalId" : {
+          "c2jName" : "portalId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the created portal.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalId",
+          "getterDocumentation" : "/**<p>The ID of the created portal.</p>\n@return The ID of the created portal.*/",
+          "getterMethodName" : "getPortalId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "portalId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PortalId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.*/",
+          "setterMethodName" : "setPortalId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the created portal.</p>\n@param portalId The ID of the created portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the created portal.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AccessPolicyId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-        "setterMethodName" : "setAccessPolicyId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+        "PortalStartUrl" : {
+          "c2jName" : "portalStartUrl",
+          "c2jShape" : "Url",
+          "deprecated" : false,
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalStartUrl",
+          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
+          "getterMethodName" : "getPortalStartUrl",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalStartUrl",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "portalStartUrl",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PortalStartUrl",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
+          "setterMethodName" : "setPortalStartUrl",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalStartUrl",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalStartUrl",
+            "variableType" : "String",
+            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the access policy.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+        "PortalStatus" : {
+          "c2jName" : "portalStatus",
+          "c2jShape" : "PortalStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalStatus",
+          "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getPortalStatus",
+          "getterModel" : {
+            "returnType" : "PortalStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalStatus",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "portalStatus",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "PortalStatus",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setPortalStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PortalStatus",
+            "variableName" : "portalStatus",
+            "variableType" : "PortalStatus",
+            "documentation" : "",
+            "simpleType" : "PortalStatus",
+            "variableSetterType" : "PortalStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PortalStatus",
+            "variableName" : "portalStatus",
+            "variableType" : "PortalStatus",
+            "documentation" : "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "PortalStatus",
+            "variableSetterType" : "PortalStatus"
+          },
+          "xmlNameSpaceUri" : null
         },
+        "SsoApplicationId" : {
+          "c2jName" : "ssoApplicationId",
+          "c2jShape" : "SSOApplicationId",
+          "deprecated" : false,
+          "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withSsoApplicationId",
+          "getterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@return The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
+          "getterMethodName" : "getSsoApplicationId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "ssoApplicationId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "ssoApplicationId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "SsoApplicationId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.*/",
+          "setterMethodName" : "setSsoApplicationId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "ssoApplicationId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>\n@param ssoApplicationId The associated AWS SSO application ID, if the portal uses AWS SSO.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "ssoApplicationId",
+            "variableType" : "String",
+            "documentation" : "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "portalId", "portalArn", "portalStartUrl", "portalStatus", "ssoApplicationId" ],
+      "shapeName" : "CreatePortalResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "CreatePortalResult",
+        "variableName" : "createPortalResult",
+        "variableType" : "CreatePortalResult",
+        "documentation" : null,
+        "simpleType" : "CreatePortalResult",
+        "variableSetterType" : "CreatePortalResult"
+      },
+      "wrapper" : false
+    },
+    "CreateProjectRequest" : {
+      "c2jName" : "CreateProjectRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.CreateProjectRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "CreateProject",
+        "locationName" : null,
+        "requestUri" : "/projects",
+        "target" : null,
+        "verb" : "POST",
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "accessPolicyArn",
-        "c2jShape" : "ARN",
+      },
+      "members" : [ {
+        "c2jName" : "portalId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+        "documentation" : "<p>The ID of the portal in which to create the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-        "getterMethodName" : "getAccessPolicyArn",
+        "fluentSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalId",
+        "getterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@return The ID of the portal in which to create the project.*/",
+        "getterMethodName" : "getPortalId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -34480,11 +33092,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyArn",
+          "marshallLocationName" : "portalId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyArn",
+          "unmarshallLocationName" : "portalId",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -34496,14 +33108,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AccessPolicyArn",
+        "name" : "PortalId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-        "setterMethodName" : "setAccessPolicyArn",
+        "setterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.*/",
+        "setterMethodName" : "setPortalId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyArn",
+          "variableName" : "portalId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -34513,30 +33125,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyArn",
+          "variableName" : "portalId",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+          "documentation" : "<p>The ID of the portal in which to create the project.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "accessPolicyIdentity",
-        "c2jShape" : "Identity",
+        "c2jName" : "projectName",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+        "documentation" : "<p>A friendly name for the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyIdentity",
-        "getterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@return The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
-        "getterMethodName" : "getAccessPolicyIdentity",
+        "fluentSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectName",
+        "getterDocumentation" : "/**<p>A friendly name for the project.</p>\n@return A friendly name for the project.*/",
+        "getterMethodName" : "getProjectName",
         "getterModel" : {
-          "returnType" : "Identity",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -34549,11 +33161,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyIdentity",
+          "marshallLocationName" : "projectName",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyIdentity",
+          "unmarshallLocationName" : "projectName",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -34563,49 +33175,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AccessPolicyIdentity",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ProjectName",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
-        "setterMethodName" : "setAccessPolicyIdentity",
+        "setterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.*/",
+        "setterMethodName" : "setProjectName",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Identity",
-          "variableName" : "accessPolicyIdentity",
-          "variableType" : "Identity",
+          "variableDeclarationType" : "String",
+          "variableName" : "projectName",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "Identity",
-          "variableSetterType" : "Identity"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Identity",
-          "variableName" : "accessPolicyIdentity",
-          "variableType" : "Identity",
-          "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
-          "simpleType" : "Identity",
-          "variableSetterType" : "Identity"
+          "variableDeclarationType" : "String",
+          "variableName" : "projectName",
+          "variableType" : "String",
+          "documentation" : "<p>A friendly name for the project.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "accessPolicyResource",
-        "c2jShape" : "Resource",
+        "c2jName" : "projectDescription",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+        "documentation" : "<p>A description for the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyResource",
-        "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@return The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
-        "getterMethodName" : "getAccessPolicyResource",
+        "fluentSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectDescription",
+        "getterDocumentation" : "/**<p>A description for the project.</p>\n@return A description for the project.*/",
+        "getterMethodName" : "getProjectDescription",
         "getterModel" : {
-          "returnType" : "Resource",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -34618,11 +33230,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyResource",
+          "marshallLocationName" : "projectDescription",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyResource",
+          "unmarshallLocationName" : "projectDescription",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -34632,47 +33244,47 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AccessPolicyResource",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ProjectDescription",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
-        "setterMethodName" : "setAccessPolicyResource",
+        "setterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.*/",
+        "setterMethodName" : "setProjectDescription",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Resource",
-          "variableName" : "accessPolicyResource",
-          "variableType" : "Resource",
+          "variableDeclarationType" : "String",
+          "variableName" : "projectDescription",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "Resource",
-          "variableSetterType" : "Resource"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "Resource",
-          "variableName" : "accessPolicyResource",
-          "variableType" : "Resource",
-          "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
-          "simpleType" : "Resource",
-          "variableSetterType" : "Resource"
+          "variableDeclarationType" : "String",
+          "variableName" : "projectDescription",
+          "variableType" : "String",
+          "documentation" : "<p>A description for the project.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "accessPolicyPermission",
-        "c2jShape" : "Permission",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : "Permission",
-        "fluentSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-        "fluentSetterMethodName" : "withAccessPolicyPermission",
-        "getterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-        "getterMethodName" : "getAccessPolicyPermission",
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -34687,14 +33299,14 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyPermission",
+          "marshallLocationName" : "clientToken",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyPermission",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -34703,14 +33315,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AccessPolicyPermission",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-        "setterMethodName" : "setAccessPolicyPermission",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyPermission",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -34720,30 +33332,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "accessPolicyPermission",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "accessPolicyCreationDate",
-        "c2jShape" : "Timestamp",
+        "c2jName" : "tags",
+        "c2jShape" : "TagMap",
         "deprecated" : false,
-        "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
+        "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyCreationDate",
-        "getterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@return The date the access policy was created, in Unix epoch time.*/",
-        "getterMethodName" : "getAccessPolicyCreationDate",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withTags",
+        "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getTags",
         "getterModel" : {
-          "returnType" : "java.util.Date",
+          "returnType" : "java.util.Map<String,String>",
           "documentation" : null
         },
         "http" : {
@@ -34756,11 +33368,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyCreationDate",
+          "marshallLocationName" : "tags",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyCreationDate",
+          "unmarshallLocationName" : "tags",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -34768,120 +33380,135 @@
         "jsonValue" : false,
         "list" : false,
         "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "AccessPolicyCreationDate",
+        "map" : true,
+        "mapModel" : {
+          "implType" : "java.util.HashMap",
+          "interfaceType" : "java.util.Map",
+          "keyLocationName" : "key",
+          "keyModel" : null,
+          "keyType" : "String",
+          "valueLocationName" : "value",
+          "valueModel" : {
+            "c2jName" : "value",
+            "c2jShape" : "TagValue",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withValue",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getValue",
+            "getterModel" : {
+              "returnType" : "String",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "value",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "value",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "String",
+            "marshallingType" : "STRING",
+            "name" : "Value",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param value */",
+            "setterMethodName" : "setValue",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : true,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "String",
+              "variableName" : "value",
+              "variableType" : "String",
+              "documentation" : "",
+              "simpleType" : "String",
+              "variableSetterType" : "String"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "valueType" : "String",
+          "entryType" : "Map.Entry<String, String>",
+          "keySimple" : true,
+          "templateImplType" : "java.util.HashMap<String,String>",
+          "templateType" : "java.util.Map<String,String>",
+          "valueList" : false,
+          "valueSimple" : true
+        },
+        "marshallingTargetClass" : "Map",
+        "marshallingType" : "MAP",
+        "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.*/",
-        "setterMethodName" : "setAccessPolicyCreationDate",
+        "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "accessPolicyCreationDate",
-          "variableType" : "java.util.Date",
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
           "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "accessPolicyCreationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "accessPolicyLastUpdateDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicyLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@return The date the access policy was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getAccessPolicyLastUpdateDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicyLastUpdateDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicyLastUpdateDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "AccessPolicyLastUpdateDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setAccessPolicyLastUpdateDate",
-        "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "accessPolicyLastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "accessPolicyLastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "variableDeclarationType" : "java.util.Map<String,String>",
+          "variableName" : "tags",
+          "variableType" : "java.util.Map<String,String>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "Map<String,String>",
+          "variableSetterType" : "java.util.Map<String,String>"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicyArn" : {
-          "c2jName" : "accessPolicyArn",
-          "c2jShape" : "ARN",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-          "getterMethodName" : "getAccessPolicyArn",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -34896,14 +33523,14 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyArn",
+            "marshallLocationName" : "clientToken",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyArn",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -34912,14 +33539,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AccessPolicyArn",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
-          "setterMethodName" : "setAccessPolicyArn",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -34929,99 +33556,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AccessPolicyCreationDate" : {
-          "c2jName" : "accessPolicyCreationDate",
-          "c2jShape" : "Timestamp",
-          "deprecated" : false,
-          "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyCreationDate",
-          "getterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@return The date the access policy was created, in Unix epoch time.*/",
-          "getterMethodName" : "getAccessPolicyCreationDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyCreationDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyCreationDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "AccessPolicyCreationDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.*/",
-          "setterMethodName" : "setAccessPolicyCreationDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "accessPolicyCreationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "accessPolicyCreationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AccessPolicyId" : {
-          "c2jName" : "accessPolicyId",
+        "PortalId" : {
+          "c2jName" : "portalId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the access policy.</p>",
+          "documentation" : "<p>The ID of the portal in which to create the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyId",
-          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
-          "getterMethodName" : "getAccessPolicyId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalId",
+          "getterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@return The ID of the portal in which to create the project.*/",
+          "getterMethodName" : "getPortalId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -35036,11 +33593,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyId",
+            "marshallLocationName" : "portalId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyId",
+            "unmarshallLocationName" : "portalId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -35052,14 +33609,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AccessPolicyId",
+          "name" : "PortalId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
-          "setterMethodName" : "setAccessPolicyId",
+          "setterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.*/",
+          "setterMethodName" : "setPortalId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "portalId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -35069,31 +33626,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the portal in which to create the project.</p>\n@param portalId The ID of the portal in which to create the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyId",
+            "variableName" : "portalId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the access policy.</p>",
+            "documentation" : "<p>The ID of the portal in which to create the project.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AccessPolicyIdentity" : {
-          "c2jName" : "accessPolicyIdentity",
-          "c2jShape" : "Identity",
+        "ProjectDescription" : {
+          "c2jName" : "projectDescription",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+          "documentation" : "<p>A description for the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyIdentity",
-          "getterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@return The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
-          "getterMethodName" : "getAccessPolicyIdentity",
+          "fluentSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectDescription",
+          "getterDocumentation" : "/**<p>A description for the project.</p>\n@return A description for the project.*/",
+          "getterMethodName" : "getProjectDescription",
           "getterModel" : {
-            "returnType" : "Identity",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -35106,11 +33663,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyIdentity",
+            "marshallLocationName" : "projectDescription",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyIdentity",
+            "unmarshallLocationName" : "projectDescription",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -35120,118 +33677,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AccessPolicyIdentity",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ProjectDescription",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
-          "setterMethodName" : "setAccessPolicyIdentity",
+          "setterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.*/",
+          "setterMethodName" : "setProjectDescription",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Identity",
-            "variableName" : "accessPolicyIdentity",
-            "variableType" : "Identity",
+            "variableDeclarationType" : "String",
+            "variableName" : "projectDescription",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Identity",
-            "variableSetterType" : "Identity"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A description for the project.</p>\n@param projectDescription A description for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Identity",
-            "variableName" : "accessPolicyIdentity",
-            "variableType" : "Identity",
-            "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
-            "simpleType" : "Identity",
-            "variableSetterType" : "Identity"
+            "variableDeclarationType" : "String",
+            "variableName" : "projectDescription",
+            "variableType" : "String",
+            "documentation" : "<p>A description for the project.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AccessPolicyLastUpdateDate" : {
-          "c2jName" : "accessPolicyLastUpdateDate",
-          "c2jShape" : "Timestamp",
+        "ProjectName" : {
+          "c2jName" : "projectName",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>A friendly name for the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@return The date the access policy was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getAccessPolicyLastUpdateDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyLastUpdateDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyLastUpdateDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "AccessPolicyLastUpdateDate",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.*/",
-          "setterMethodName" : "setAccessPolicyLastUpdateDate",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "accessPolicyLastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "accessPolicyLastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AccessPolicyPermission" : {
-          "c2jName" : "accessPolicyPermission",
-          "c2jShape" : "Permission",
-          "deprecated" : false,
-          "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "Permission",
-          "fluentSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
-          "fluentSetterMethodName" : "withAccessPolicyPermission",
-          "getterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-          "getterMethodName" : "getAccessPolicyPermission",
+          "fluentSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectName",
+          "getterDocumentation" : "/**<p>A friendly name for the project.</p>\n@return A friendly name for the project.*/",
+          "getterMethodName" : "getProjectName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -35246,11 +33733,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyPermission",
+            "marshallLocationName" : "projectName",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyPermission",
+            "unmarshallLocationName" : "projectName",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -35262,14 +33749,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AccessPolicyPermission",
+          "name" : "ProjectName",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
-          "setterMethodName" : "setAccessPolicyPermission",
+          "setterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.*/",
+          "setterMethodName" : "setProjectName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyPermission",
+            "variableName" : "projectName",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -35279,31 +33766,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+          "varargSetterDocumentation" : "/**<p>A friendly name for the project.</p>\n@param projectName A friendly name for the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "accessPolicyPermission",
+            "variableName" : "projectName",
             "variableType" : "String",
-            "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+            "documentation" : "<p>A friendly name for the project.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AccessPolicyResource" : {
-          "c2jName" : "accessPolicyResource",
-          "c2jShape" : "Resource",
+        "Tags" : {
+          "c2jName" : "tags",
+          "c2jShape" : "TagMap",
           "deprecated" : false,
-          "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+          "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicyResource",
-          "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@return The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
-          "getterMethodName" : "getAccessPolicyResource",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withTags",
+          "getterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getTags",
           "getterModel" : {
-            "returnType" : "Resource",
+            "returnType" : "java.util.Map<String,String>",
             "documentation" : null
           },
           "http" : {
@@ -35316,11 +33803,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicyResource",
+            "marshallLocationName" : "tags",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicyResource",
+            "unmarshallLocationName" : "tags",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -35328,64 +33815,145 @@
           "jsonValue" : false,
           "list" : false,
           "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AccessPolicyResource",
+          "map" : true,
+          "mapModel" : {
+            "implType" : "java.util.HashMap",
+            "interfaceType" : "java.util.Map",
+            "keyLocationName" : "key",
+            "keyModel" : null,
+            "keyType" : "String",
+            "valueLocationName" : "value",
+            "valueModel" : {
+              "c2jName" : "value",
+              "c2jShape" : "TagValue",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withValue",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getValue",
+              "getterModel" : {
+                "returnType" : "String",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "value",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "value",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "String",
+              "marshallingType" : "STRING",
+              "name" : "Value",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param value */",
+              "setterMethodName" : "setValue",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : true,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param value \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "String",
+                "variableName" : "value",
+                "variableType" : "String",
+                "documentation" : "",
+                "simpleType" : "String",
+                "variableSetterType" : "String"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "valueType" : "String",
+            "entryType" : "Map.Entry<String, String>",
+            "keySimple" : true,
+            "templateImplType" : "java.util.HashMap<String,String>",
+            "templateType" : "java.util.Map<String,String>",
+            "valueList" : false,
+            "valueSimple" : true
+          },
+          "marshallingTargetClass" : "Map",
+          "marshallingType" : "MAP",
+          "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
-          "setterMethodName" : "setAccessPolicyResource",
+          "setterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Resource",
-            "variableName" : "accessPolicyResource",
-            "variableType" : "Resource",
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
             "documentation" : "",
-            "simpleType" : "Resource",
-            "variableSetterType" : "Resource"
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param tags A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "Resource",
-            "variableName" : "accessPolicyResource",
-            "variableType" : "Resource",
-            "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
-            "simpleType" : "Resource",
-            "variableSetterType" : "Resource"
+            "variableDeclarationType" : "java.util.Map<String,String>",
+            "variableName" : "tags",
+            "variableType" : "java.util.Map<String,String>",
+            "documentation" : "<p>A list of key-value pairs that contain metadata for the project. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "Map<String,String>",
+            "variableSetterType" : "java.util.Map<String,String>"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicyId", "accessPolicyArn", "accessPolicyIdentity", "accessPolicyResource", "accessPolicyPermission", "accessPolicyCreationDate", "accessPolicyLastUpdateDate" ],
-      "shapeName" : "DescribeAccessPolicyResult",
+      "required" : [ "portalId", "projectName" ],
+      "shapeName" : "CreateProjectRequest",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAccessPolicyResult",
-        "variableName" : "describeAccessPolicyResult",
-        "variableType" : "DescribeAccessPolicyResult",
+        "variableDeclarationType" : "CreateProjectRequest",
+        "variableName" : "createProjectRequest",
+        "variableType" : "CreateProjectRequest",
         "documentation" : null,
-        "simpleType" : "DescribeAccessPolicyResult",
-        "variableSetterType" : "DescribeAccessPolicyResult"
+        "simpleType" : "CreateProjectRequest",
+        "variableSetterType" : "CreateProjectRequest"
       },
       "wrapper" : false
     },
-    "DescribeAssetModelRequest" : {
-      "c2jName" : "DescribeAssetModelRequest",
+    "CreateProjectResult" : {
+      "c2jName" : "CreateProjectResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -35397,31 +33965,24 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetModelRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.CreateProjectResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DescribeAssetModel",
-        "locationName" : null,
-        "requestUri" : "/asset-models/{assetModelId}",
-        "target" : null,
-        "verb" : "GET",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetModelId",
+        "c2jName" : "projectId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model.</p>",
+        "documentation" : "<p>The ID of the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectId",
+        "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
+        "getterMethodName" : "getProjectId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -35434,14 +33995,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetModelId",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "projectId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
-          "uri" : true
+          "unmarshallLocationName" : "projectId",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -35452,14 +34013,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "ProjectId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
+        "setterMethodName" : "setProjectId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "projectId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -35469,30 +34030,169 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "projectId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model.</p>",
+          "documentation" : "<p>The ID of the project.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "projectArn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
+        "getterMethodName" : "getProjectArn",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "projectArn",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "projectArn",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ProjectArn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
+        "setterMethodName" : "setProjectArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "projectArn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "projectArn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
+        "ProjectArn" : {
+          "c2jName" : "projectArn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
+          "getterMethodName" : "getProjectArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "projectArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "projectArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ProjectArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>*/",
+          "setterMethodName" : "setProjectArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "projectArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>\n@param projectArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "projectArn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "ProjectId" : {
+          "c2jName" : "projectId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model.</p>",
+          "documentation" : "<p>The ID of the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-          "getterMethodName" : "getAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectId",
+          "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
+          "getterMethodName" : "getProjectId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -35505,14 +34205,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetModelId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "projectId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
-            "uri" : true
+            "unmarshallLocationName" : "projectId",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -35523,14 +34223,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelId",
+          "name" : "ProjectId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-          "setterMethodName" : "setAssetModelId",
+          "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
+          "setterMethodName" : "setProjectId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "projectId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -35540,40 +34240,43 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "projectId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model.</p>",
+            "documentation" : "<p>The ID of the project.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelId" ],
-      "shapeName" : "DescribeAssetModelRequest",
+      "required" : [ "projectId", "projectArn" ],
+      "shapeName" : "CreateProjectResult",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAssetModelRequest",
-        "variableName" : "describeAssetModelRequest",
-        "variableType" : "DescribeAssetModelRequest",
+        "variableDeclarationType" : "CreateProjectResult",
+        "variableName" : "createProjectResult",
+        "variableType" : "CreateProjectResult",
         "documentation" : null,
-        "simpleType" : "DescribeAssetModelRequest",
-        "variableSetterType" : "DescribeAssetModelRequest"
+        "simpleType" : "CreateProjectResult",
+        "variableSetterType" : "CreateProjectResult"
       },
       "wrapper" : false
     },
-    "DescribeAssetModelResult" : {
-      "c2jName" : "DescribeAssetModelResponse",
+    "DashboardSummary" : {
+      "c2jName" : "DashboardSummary",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -35581,11 +34284,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains a dashboard summary.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetModelResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.DashboardSummary",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -35593,16 +34296,16 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetModelId",
+        "c2jName" : "id",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model.</p>",
+        "documentation" : "<p>The ID of the dashboard.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -35617,11 +34320,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "id",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -35633,14 +34336,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "id",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -35650,28 +34353,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model.</p>",
+          "documentation" : "<p>The ID of the dashboard.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelArn",
-        "c2jShape" : "ARN",
+        "c2jName" : "name",
+        "c2jShape" : "Name",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+        "documentation" : "<p>The name of the dashboard</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "getterMethodName" : "getAssetModelArn",
+        "fluentSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withName",
+        "getterDocumentation" : "/**<p>The name of the dashboard</p>\n@return The name of the dashboard*/",
+        "getterMethodName" : "getName",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -35686,11 +34389,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelArn",
+          "marshallLocationName" : "name",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelArn",
+          "unmarshallLocationName" : "name",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -35702,14 +34405,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelArn",
+        "name" : "Name",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-        "setterMethodName" : "setAssetModelArn",
+        "setterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard*/",
+        "setterMethodName" : "setName",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelArn",
+          "variableName" : "name",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -35719,28 +34422,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelArn",
+          "variableName" : "name",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "documentation" : "<p>The name of the dashboard</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelName",
-        "c2jShape" : "Name",
+        "c2jName" : "description",
+        "c2jShape" : "Description",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset model.</p>",
+        "documentation" : "<p>The dashboard's description.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelName",
-        "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
-        "getterMethodName" : "getAssetModelName",
+        "fluentSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDescription",
+        "getterDocumentation" : "/**<p>The dashboard's description.</p>\n@return The dashboard's description.*/",
+        "getterMethodName" : "getDescription",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -35755,11 +34458,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelName",
+          "marshallLocationName" : "description",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelName",
+          "unmarshallLocationName" : "description",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -35771,14 +34474,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelName",
+        "name" : "Description",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.*/",
-        "setterMethodName" : "setAssetModelName",
+        "setterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.*/",
+        "setterMethodName" : "setDescription",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelName",
+          "variableName" : "description",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -35788,30 +34491,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelName",
+          "variableName" : "description",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset model.</p>",
+          "documentation" : "<p>The dashboard's description.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelDescription",
-        "c2jShape" : "Description",
+        "c2jName" : "creationDate",
+        "c2jShape" : "Timestamp",
         "deprecated" : false,
-        "documentation" : "<p>The asset model's description.</p>",
+        "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelDescription",
-        "getterDocumentation" : "/**<p>The asset model's description.</p>\n@return The asset model's description.*/",
-        "getterMethodName" : "getAssetModelDescription",
+        "fluentSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withCreationDate",
+        "getterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@return The date the dashboard was created, in Unix epoch time.*/",
+        "getterMethodName" : "getCreationDate",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.Date",
           "documentation" : null
         },
         "http" : {
@@ -35824,11 +34527,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelDescription",
+          "marshallLocationName" : "creationDate",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelDescription",
+          "unmarshallLocationName" : "creationDate",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -35838,49 +34541,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetModelDescription",
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "CreationDate",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.*/",
-        "setterMethodName" : "setAssetModelDescription",
+        "setterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.*/",
+        "setterMethodName" : "setCreationDate",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelDescription",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetModelDescription",
-          "variableType" : "String",
-          "documentation" : "<p>The asset model's description.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "creationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelProperties",
-        "c2jShape" : "AssetModelProperties",
+        "c2jName" : "lastUpdateDate",
+        "c2jShape" : "Timestamp",
         "deprecated" : false,
-        "documentation" : "<p>The list of asset properties for the asset model.</p>",
+        "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@param assetModelProperties The list of asset properties for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelProperties",
-        "getterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@return The list of asset properties for the asset model.*/",
-        "getterMethodName" : "getAssetModelProperties",
+        "fluentSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@return The date the dashboard was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getLastUpdateDate",
         "getterModel" : {
-          "returnType" : "java.util.List<AssetModelProperty>",
+          "returnType" : "java.util.Date",
           "documentation" : null
         },
         "http" : {
@@ -35893,386 +34596,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelProperties",
+          "marshallLocationName" : "lastUpdateDate",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelProperties",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetModelProperty",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetModelProperty",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelProperty",
-              "variableName" : "member",
-              "variableType" : "AssetModelProperty",
-              "documentation" : "",
-              "simpleType" : "AssetModelProperty",
-              "variableSetterType" : "AssetModelProperty"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelProperty",
-              "variableName" : "member",
-              "variableType" : "AssetModelProperty",
-              "documentation" : "",
-              "simpleType" : "AssetModelProperty",
-              "variableSetterType" : "AssetModelProperty"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetModelProperty",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetModelProperty",
-          "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
-          "templateType" : "java.util.List<AssetModelProperty>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetModelProperties",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@param assetModelProperties The list of asset properties for the asset model.*/",
-        "setterMethodName" : "setAssetModelProperties",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
-          "variableName" : "assetModelProperties",
-          "variableType" : "java.util.List<AssetModelProperty>",
-          "documentation" : "",
-          "simpleType" : "List<AssetModelProperty>",
-          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The list of asset properties for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
-          "variableName" : "assetModelProperties",
-          "variableType" : "java.util.List<AssetModelProperty>",
-          "documentation" : "<p>The list of asset properties for the asset model.</p>",
-          "simpleType" : "List<AssetModelProperty>",
-          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelHierarchies",
-        "c2jShape" : "AssetModelHierarchies",
-        "deprecated" : false,
-        "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelHierarchies",
-        "getterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@return A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
-        "getterMethodName" : "getAssetModelHierarchies",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetModelHierarchy>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelHierarchies",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetModelHierarchies",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetModelHierarchy",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetModelHierarchy",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetModelHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetModelHierarchy",
-              "variableSetterType" : "AssetModelHierarchy"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetModelHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetModelHierarchy",
-              "variableSetterType" : "AssetModelHierarchy"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetModelHierarchy",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetModelHierarchy",
-          "templateImplType" : "java.util.ArrayList<AssetModelHierarchy>",
-          "templateType" : "java.util.List<AssetModelHierarchy>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetModelHierarchies",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
-        "setterMethodName" : "setAssetModelHierarchies",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
-          "variableName" : "assetModelHierarchies",
-          "variableType" : "java.util.List<AssetModelHierarchy>",
-          "documentation" : "",
-          "simpleType" : "List<AssetModelHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
-          "variableName" : "assetModelHierarchies",
-          "variableType" : "java.util.List<AssetModelHierarchy>",
-          "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
-          "simpleType" : "List<AssetModelHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelCreationDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelCreationDate",
-        "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
-        "getterMethodName" : "getAssetModelCreationDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelCreationDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetModelCreationDate",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "AssetModelCreationDate",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.*/",
-        "setterMethodName" : "setAssetModelCreationDate",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetModelCreationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetModelCreationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelLastUpdateDate",
-        "c2jShape" : "Timestamp",
-        "deprecated" : false,
-        "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getAssetModelLastUpdateDate",
-        "getterModel" : {
-          "returnType" : "java.util.Date",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelLastUpdateDate",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetModelLastUpdateDate",
+          "unmarshallLocationName" : "lastUpdateDate",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -36284,14 +34612,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "java.util.Date",
         "marshallingType" : "DATE",
-        "name" : "AssetModelLastUpdateDate",
+        "name" : "LastUpdateDate",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setAssetModelLastUpdateDate",
+        "setterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setLastUpdateDate",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetModelLastUpdateDate",
+          "variableName" : "lastUpdateDate",
           "variableType" : "java.util.Date",
           "documentation" : "",
           "simpleType" : "Date",
@@ -36301,101 +34629,32 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetModelLastUpdateDate",
+          "variableName" : "lastUpdateDate",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelStatus",
-        "c2jShape" : "AssetModelStatus",
-        "deprecated" : false,
-        "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelStatus",
-        "getterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@return The current status of the asset model, which contains a state and any error message.*/",
-        "getterMethodName" : "getAssetModelStatus",
-        "getterModel" : {
-          "returnType" : "AssetModelStatus",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelStatus",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetModelStatus",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AssetModelStatus",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.*/",
-        "setterMethodName" : "setAssetModelStatus",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "AssetModelStatus",
-          "variableName" : "assetModelStatus",
-          "variableType" : "AssetModelStatus",
-          "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
-          "simpleType" : "AssetModelStatus",
-          "variableSetterType" : "AssetModelStatus"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetModelArn" : {
-          "c2jName" : "assetModelArn",
-          "c2jShape" : "ARN",
+        "CreationDate" : {
+          "c2jName" : "creationDate",
+          "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "getterMethodName" : "getAssetModelArn",
+          "fluentSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withCreationDate",
+          "getterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@return The date the dashboard was created, in Unix epoch time.*/",
+          "getterMethodName" : "getCreationDate",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.Date",
             "documentation" : null
           },
           "http" : {
@@ -36408,11 +34667,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelArn",
+            "marshallLocationName" : "creationDate",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelArn",
+            "unmarshallLocationName" : "creationDate",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -36422,50 +34681,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelArn",
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "CreationDate",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
-          "setterMethodName" : "setAssetModelArn",
+          "setterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.*/",
+          "setterMethodName" : "setCreationDate",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelArn",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date the dashboard was created, in Unix epoch time.</p>\n@param creationDate The date the dashboard was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelArn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "creationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the dashboard was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelCreationDate" : {
-          "c2jName" : "assetModelCreationDate",
-          "c2jShape" : "Timestamp",
+        "Description" : {
+          "c2jName" : "description",
+          "c2jShape" : "Description",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
+          "documentation" : "<p>The dashboard's description.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelCreationDate",
-          "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
-          "getterMethodName" : "getAssetModelCreationDate",
+          "fluentSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDescription",
+          "getterDocumentation" : "/**<p>The dashboard's description.</p>\n@return The dashboard's description.*/",
+          "getterMethodName" : "getDescription",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -36478,11 +34737,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelCreationDate",
+            "marshallLocationName" : "description",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelCreationDate",
+            "unmarshallLocationName" : "description",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -36492,48 +34751,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "AssetModelCreationDate",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Description",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.*/",
-          "setterMethodName" : "setAssetModelCreationDate",
+          "setterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.*/",
+          "setterMethodName" : "setDescription",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetModelCreationDate",
-            "variableType" : "java.util.Date",
+            "variableDeclarationType" : "String",
+            "variableName" : "description",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The dashboard's description.</p>\n@param description The dashboard's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetModelCreationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "description",
+            "variableType" : "String",
+            "documentation" : "<p>The dashboard's description.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelDescription" : {
-          "c2jName" : "assetModelDescription",
-          "c2jShape" : "Description",
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The asset model's description.</p>",
+          "documentation" : "<p>The ID of the dashboard.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelDescription",
-          "getterDocumentation" : "/**<p>The asset model's description.</p>\n@return The asset model's description.*/",
-          "getterMethodName" : "getAssetModelDescription",
+          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@return The ID of the dashboard.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -36548,11 +34807,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelDescription",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelDescription",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -36564,14 +34823,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelDescription",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.*/",
-          "setterMethodName" : "setAssetModelDescription",
+          "setterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelDescription",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -36581,31 +34840,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the dashboard.</p>\n@param id The ID of the dashboard.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelDescription",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The asset model's description.</p>",
+            "documentation" : "<p>The ID of the dashboard.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelHierarchies" : {
-          "c2jName" : "assetModelHierarchies",
-          "c2jShape" : "AssetModelHierarchies",
+        "LastUpdateDate" : {
+          "c2jName" : "lastUpdateDate",
+          "c2jShape" : "Timestamp",
           "deprecated" : false,
-          "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
+          "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelHierarchies",
-          "getterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@return A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
-          "getterMethodName" : "getAssetModelHierarchies",
+          "fluentSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@return The date the dashboard was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getLastUpdateDate",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetModelHierarchy>",
+            "returnType" : "java.util.Date",
             "documentation" : null
           },
           "http" : {
@@ -36618,146 +34877,62 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelHierarchies",
+            "marshallLocationName" : "lastUpdateDate",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelHierarchies",
+            "unmarshallLocationName" : "lastUpdateDate",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetModelHierarchy",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetModelHierarchy",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetModelHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetModelHierarchy",
-                "variableSetterType" : "AssetModelHierarchy"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetModelHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetModelHierarchy",
-                "variableSetterType" : "AssetModelHierarchy"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetModelHierarchy",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetModelHierarchy",
-            "templateImplType" : "java.util.ArrayList<AssetModelHierarchy>",
-            "templateType" : "java.util.List<AssetModelHierarchy>"
-          },
+          "list" : false,
+          "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "AssetModelHierarchies",
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "LastUpdateDate",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
-          "setterMethodName" : "setAssetModelHierarchies",
+          "setterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.*/",
+          "setterMethodName" : "setLastUpdateDate",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
-            "variableName" : "assetModelHierarchies",
-            "variableType" : "java.util.List<AssetModelHierarchy>",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
             "documentation" : "",
-            "simpleType" : "List<AssetModelHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date the dashboard was last updated, in Unix epoch time.</p>\n@param lastUpdateDate The date the dashboard was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
-            "variableName" : "assetModelHierarchies",
-            "variableType" : "java.util.List<AssetModelHierarchy>",
-            "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
-            "simpleType" : "List<AssetModelHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "lastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
+        "Name" : {
+          "c2jName" : "name",
+          "c2jShape" : "Name",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model.</p>",
+          "documentation" : "<p>The name of the dashboard</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-          "getterMethodName" : "getAssetModelId",
+          "fluentSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withName",
+          "getterDocumentation" : "/**<p>The name of the dashboard</p>\n@return The name of the dashboard*/",
+          "getterMethodName" : "getName",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -36772,11 +34947,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
+            "marshallLocationName" : "name",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
+            "unmarshallLocationName" : "name",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -36788,14 +34963,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelId",
+          "name" : "Name",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-          "setterMethodName" : "setAssetModelId",
+          "setterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard*/",
+          "setterMethodName" : "setName",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "name",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -36805,31 +34980,221 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the dashboard</p>\n@param name The name of the dashboard\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
+            "variableName" : "name",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model.</p>",
+            "documentation" : "<p>The name of the dashboard</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "id", "name" ],
+      "shapeName" : "DashboardSummary",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DashboardSummary",
+        "variableName" : "dashboardSummary",
+        "variableType" : "DashboardSummary",
+        "documentation" : null,
+        "simpleType" : "DashboardSummary",
+        "variableSetterType" : "DashboardSummary"
+      },
+      "wrapper" : false
+    },
+    "DeleteAccessPolicyRequest" : {
+      "c2jName" : "DeleteAccessPolicyRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAccessPolicyRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DeleteAccessPolicy",
+        "locationName" : null,
+        "requestUri" : "/access-policies/{accessPolicyId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "accessPolicyId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyId",
+        "getterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@return The ID of the access policy to be deleted.*/",
+        "getterMethodName" : "getAccessPolicyId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "AssetModelLastUpdateDate" : {
-          "c2jName" : "assetModelLastUpdateDate",
-          "c2jShape" : "Timestamp",
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "accessPolicyId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.*/",
+        "setterMethodName" : "setAccessPolicyId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
+        "deprecated" : false,
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "clientToken",
+          "uri" : false
+        },
+        "idempotencyToken" : true,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ClientToken",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AccessPolicyId" : {
+          "c2jName" : "accessPolicyId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+          "documentation" : "<p>The ID of the access policy to be deleted.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getAssetModelLastUpdateDate",
+          "fluentSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyId",
+          "getterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@return The ID of the access policy to be deleted.*/",
+          "getterMethodName" : "getAccessPolicyId",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -36840,14 +35205,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelLastUpdateDate",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "accessPolicyId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelLastUpdateDate",
-            "uri" : false
+            "unmarshallLocationName" : "accessPolicyId",
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -36856,48 +35221,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "AssetModelLastUpdateDate",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AccessPolicyId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
-          "setterMethodName" : "setAssetModelLastUpdateDate",
+          "setterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.*/",
+          "setterMethodName" : "setAccessPolicyId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetModelLastUpdateDate",
-            "variableType" : "java.util.Date",
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyId",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the access policy to be deleted.</p>\n@param accessPolicyId The ID of the access policy to be deleted.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetModelLastUpdateDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the access policy to be deleted.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetModelName" : {
-          "c2jName" : "assetModelName",
-          "c2jShape" : "Name",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset model.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelName",
-          "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
-          "getterMethodName" : "getAssetModelName",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -36910,16 +35275,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelName",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelName",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -36928,14 +35293,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetModelName",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.*/",
-          "setterMethodName" : "setAssetModelName",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelName",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -36945,248 +35310,65 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetModelName",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset model.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "AssetModelProperties" : {
-          "c2jName" : "assetModelProperties",
-          "c2jShape" : "AssetModelProperties",
-          "deprecated" : false,
-          "documentation" : "<p>The list of asset properties for the asset model.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@param assetModelProperties The list of asset properties for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelProperties",
-          "getterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@return The list of asset properties for the asset model.*/",
-          "getterMethodName" : "getAssetModelProperties",
-          "getterModel" : {
-            "returnType" : "java.util.List<AssetModelProperty>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelProperties",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelProperties",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetModelProperty",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetModelProperty",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelProperty",
-                "variableName" : "member",
-                "variableType" : "AssetModelProperty",
-                "documentation" : "",
-                "simpleType" : "AssetModelProperty",
-                "variableSetterType" : "AssetModelProperty"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelProperty",
-                "variableName" : "member",
-                "variableType" : "AssetModelProperty",
-                "documentation" : "",
-                "simpleType" : "AssetModelProperty",
-                "variableSetterType" : "AssetModelProperty"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetModelProperty",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetModelProperty",
-            "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
-            "templateType" : "java.util.List<AssetModelProperty>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "AssetModelProperties",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n@param assetModelProperties The list of asset properties for the asset model.*/",
-          "setterMethodName" : "setAssetModelProperties",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
-            "variableName" : "assetModelProperties",
-            "variableType" : "java.util.List<AssetModelProperty>",
-            "documentation" : "",
-            "simpleType" : "List<AssetModelProperty>",
-            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The list of asset properties for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
-            "variableName" : "assetModelProperties",
-            "variableType" : "java.util.List<AssetModelProperty>",
-            "documentation" : "<p>The list of asset properties for the asset model.</p>",
-            "simpleType" : "List<AssetModelProperty>",
-            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AssetModelStatus" : {
-          "c2jName" : "assetModelStatus",
-          "c2jShape" : "AssetModelStatus",
-          "deprecated" : false,
-          "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelStatus",
-          "getterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@return The current status of the asset model, which contains a state and any error message.*/",
-          "getterMethodName" : "getAssetModelStatus",
-          "getterModel" : {
-            "returnType" : "AssetModelStatus",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelStatus",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelStatus",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetModelStatus",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.*/",
-          "setterMethodName" : "setAssetModelStatus",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "AssetModelStatus",
-            "variableName" : "assetModelStatus",
-            "variableType" : "AssetModelStatus",
-            "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
-            "simpleType" : "AssetModelStatus",
-            "variableSetterType" : "AssetModelStatus"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "accessPolicyId" ],
+      "shapeName" : "DeleteAccessPolicyRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteAccessPolicyRequest",
+        "variableName" : "deleteAccessPolicyRequest",
+        "variableType" : "DeleteAccessPolicyRequest",
+        "documentation" : null,
+        "simpleType" : "DeleteAccessPolicyRequest",
+        "variableSetterType" : "DeleteAccessPolicyRequest"
+      },
+      "wrapper" : false
+    },
+    "DeleteAccessPolicyResult" : {
+      "c2jName" : "DeleteAccessPolicyResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAccessPolicyResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelId", "assetModelArn", "assetModelName", "assetModelDescription", "assetModelProperties", "assetModelHierarchies", "assetModelCreationDate", "assetModelLastUpdateDate", "assetModelStatus" ],
-      "shapeName" : "DescribeAssetModelResult",
+      "required" : null,
+      "shapeName" : "DeleteAccessPolicyResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -37195,17 +35377,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAssetModelResult",
-        "variableName" : "describeAssetModelResult",
-        "variableType" : "DescribeAssetModelResult",
+        "variableDeclarationType" : "DeleteAccessPolicyResult",
+        "variableName" : "deleteAccessPolicyResult",
+        "variableType" : "DeleteAccessPolicyResult",
         "documentation" : null,
-        "simpleType" : "DescribeAssetModelResult",
-        "variableSetterType" : "DescribeAssetModelResult"
+        "simpleType" : "DeleteAccessPolicyResult",
+        "variableSetterType" : "DeleteAccessPolicyResult"
       },
       "wrapper" : false
     },
-    "DescribeAssetPropertyRequest" : {
-      "c2jName" : "DescribeAssetPropertyRequest",
+    "DeleteAssetModelRequest" : {
+      "c2jName" : "DeleteAssetModelRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -37217,31 +35399,31 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetPropertyRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAssetModelRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : {
-        "action" : "DescribeAssetProperty",
+        "action" : "DeleteAssetModel",
         "locationName" : null,
-        "requestUri" : "/assets/{assetId}/properties/{propertyId}",
+        "requestUri" : "/asset-models/{assetModelId}",
         "target" : null,
-        "verb" : "GET",
+        "verb" : "DELETE",
         "xmlNameSpaceUri" : null
       },
       "members" : [ {
-        "c2jName" : "assetId",
+        "c2jName" : "assetModelId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The ID of the asset model to delete.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@return The ID of the asset model to delete.*/",
+        "getterMethodName" : "getAssetModelId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -37256,11 +35438,11 @@
           "isStreaming" : false,
           "location" : "uri",
           "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetId",
+          "marshallLocationName" : "assetModelId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
+          "unmarshallLocationName" : "assetModelId",
           "uri" : true
         },
         "idempotencyToken" : false,
@@ -37272,14 +35454,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "name" : "AssetModelId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.*/",
+        "setterMethodName" : "setAssetModelId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "assetModelId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -37289,28 +35471,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "assetModelId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the asset model to delete.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "propertyId",
-        "c2jShape" : "ID",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset property.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPropertyId",
-        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
-        "getterMethodName" : "getPropertyId",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -37323,16 +35505,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "propertyId",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "propertyId",
-          "uri" : true
+          "unmarshallLocationName" : "clientToken",
+          "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -37341,14 +35523,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PropertyId",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
-        "setterMethodName" : "setPropertyId",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "propertyId",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -37358,30 +35540,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "propertyId",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset property.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the asset model to delete.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@return The ID of the asset model to delete.*/",
+          "getterMethodName" : "getAssetModelId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -37396,11 +35578,11 @@
             "isStreaming" : false,
             "location" : "uri",
             "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetId",
+            "marshallLocationName" : "assetModelId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
+            "unmarshallLocationName" : "assetModelId",
             "uri" : true
           },
           "idempotencyToken" : false,
@@ -37412,14 +35594,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "AssetModelId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.*/",
+          "setterMethodName" : "setAssetModelId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "assetModelId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -37429,29 +35611,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model to delete.</p>\n@param assetModelId The ID of the asset model to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "assetModelId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
+            "documentation" : "<p>The ID of the asset model to delete.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "PropertyId" : {
-          "c2jName" : "propertyId",
-          "c2jShape" : "ID",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset property.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPropertyId",
-          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
-          "getterMethodName" : "getPropertyId",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -37464,16 +35646,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "propertyId",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "propertyId",
-            "uri" : true
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -37482,14 +35664,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PropertyId",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
-          "setterMethodName" : "setPropertyId",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyId",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -37499,13 +35681,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyId",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset property.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -37515,24 +35697,24 @@
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetId", "propertyId" ],
-      "shapeName" : "DescribeAssetPropertyRequest",
+      "required" : [ "assetModelId" ],
+      "shapeName" : "DeleteAssetModelRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAssetPropertyRequest",
-        "variableName" : "describeAssetPropertyRequest",
-        "variableType" : "DescribeAssetPropertyRequest",
+        "variableDeclarationType" : "DeleteAssetModelRequest",
+        "variableName" : "deleteAssetModelRequest",
+        "variableType" : "DeleteAssetModelRequest",
         "documentation" : null,
-        "simpleType" : "DescribeAssetPropertyRequest",
-        "variableSetterType" : "DescribeAssetPropertyRequest"
+        "simpleType" : "DeleteAssetModelRequest",
+        "variableSetterType" : "DeleteAssetModelRequest"
       },
       "wrapper" : false
     },
-    "DescribeAssetPropertyResult" : {
-      "c2jName" : "DescribeAssetPropertyResponse",
+    "DeleteAssetModelResult" : {
+      "c2jName" : "DeleteAssetModelResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -37544,7 +35726,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetPropertyResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAssetModelResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -37552,18 +35734,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
+        "c2jName" : "assetModelStatus",
+        "c2jShape" : "AssetModelStatus",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelStatus",
+        "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getAssetModelStatus",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "AssetModelStatus",
           "documentation" : null
         },
         "http" : {
@@ -37576,11 +35758,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetId",
+          "marshallLocationName" : "assetModelStatus",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
+          "unmarshallLocationName" : "assetModelStatus",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -37590,47 +35772,169 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetModelStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setAssetModelStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
+          "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetName",
-        "c2jShape" : "Name",
-        "deprecated" : false,
-        "documentation" : "<p>The name of the asset.</p>",
+      } ],
+      "membersAsMap" : {
+        "AssetModelStatus" : {
+          "c2jName" : "assetModelStatus",
+          "c2jShape" : "AssetModelStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelStatus",
+          "getterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getAssetModelStatus",
+          "getterModel" : {
+            "returnType" : "AssetModelStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelStatus",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelStatus",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetModelStatus",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setAssetModelStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetModelStatus The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "<p>The status of the asset model, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetModelStatus" ],
+      "shapeName" : "DeleteAssetModelResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteAssetModelResult",
+        "variableName" : "deleteAssetModelResult",
+        "variableType" : "DeleteAssetModelResult",
+        "documentation" : null,
+        "simpleType" : "DeleteAssetModelResult",
+        "variableSetterType" : "DeleteAssetModelResult"
+      },
+      "wrapper" : false
+    },
+    "DeleteAssetRequest" : {
+      "c2jName" : "DeleteAssetRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteAssetRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DeleteAsset",
+        "locationName" : null,
+        "requestUri" : "/assets/{assetId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset to delete.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetName",
-        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
-        "getterMethodName" : "getAssetName",
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@return The ID of the asset to delete.*/",
+        "getterMethodName" : "getAssetId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -37643,14 +35947,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetName",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetName",
-          "uri" : false
+          "unmarshallLocationName" : "assetId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -37661,14 +35965,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetName",
+        "name" : "AssetId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
-        "setterMethodName" : "setAssetName",
+        "setterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.*/",
+        "setterMethodName" : "setAssetId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "assetId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -37678,28 +35982,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "assetId",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>The ID of the asset to delete.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-        "getterMethodName" : "getAssetModelId",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -37712,16 +36016,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -37730,14 +36034,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -37747,98 +36051,29 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetProperty",
-        "c2jShape" : "Property",
-        "deprecated" : false,
-        "documentation" : "<p>The asset property's definition, alias, and notification state.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetProperty",
-        "getterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@return The asset property's definition, alias, and notification state.*/",
-        "getterMethodName" : "getAssetProperty",
-        "getterModel" : {
-          "returnType" : "Property",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetProperty",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetProperty",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AssetProperty",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.*/",
-        "setterMethodName" : "setAssetProperty",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Property",
-          "variableName" : "assetProperty",
-          "variableType" : "Property",
-          "documentation" : "",
-          "simpleType" : "Property",
-          "variableSetterType" : "Property"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Property",
-          "variableName" : "assetProperty",
-          "variableType" : "Property",
-          "documentation" : "<p>The asset property's definition, alias, and notification state.</p>",
-          "simpleType" : "Property",
-          "variableSetterType" : "Property"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
         "AssetId" : {
           "c2jName" : "assetId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the asset to delete.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@return The ID of the asset to delete.*/",
           "getterMethodName" : "getAssetId",
           "getterModel" : {
             "returnType" : "String",
@@ -37852,14 +36087,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
             "marshallLocationName" : "assetId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
             "unmarshallLocationName" : "assetId",
-            "uri" : false
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -37872,7 +36107,7 @@
           "marshallingType" : "STRING",
           "name" : "AssetId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.*/",
           "setterMethodName" : "setAssetId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -37887,99 +36122,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset to delete.</p>\n@param assetId The ID of the asset to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "assetId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AssetModelId" : {
-          "c2jName" : "assetModelId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the asset model.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelId",
-          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
-          "getterMethodName" : "getAssetModelId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelId",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetModelId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetModelId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
-          "setterMethodName" : "setAssetModelId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetModelId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset model.</p>",
+            "documentation" : "<p>The ID of the asset to delete.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetName" : {
-          "c2jName" : "assetName",
-          "c2jShape" : "Name",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetName",
-          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
-          "getterMethodName" : "getAssetName",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -37992,16 +36157,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetName",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetName",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -38010,14 +36175,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetName",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
-          "setterMethodName" : "setAssetName",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetName",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -38027,113 +36192,40 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetName",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The name of the asset.</p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "AssetProperty" : {
-          "c2jName" : "assetProperty",
-          "c2jShape" : "Property",
-          "deprecated" : false,
-          "documentation" : "<p>The asset property's definition, alias, and notification state.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetProperty",
-          "getterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@return The asset property's definition, alias, and notification state.*/",
-          "getterMethodName" : "getAssetProperty",
-          "getterModel" : {
-            "returnType" : "Property",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetProperty",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetProperty",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "AssetProperty",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.*/",
-          "setterMethodName" : "setAssetProperty",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Property",
-            "variableName" : "assetProperty",
-            "variableType" : "Property",
-            "documentation" : "",
-            "simpleType" : "Property",
-            "variableSetterType" : "Property"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p>\n@param assetProperty The asset property's definition, alias, and notification state.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "Property",
-            "variableName" : "assetProperty",
-            "variableType" : "Property",
-            "documentation" : "<p>The asset property's definition, alias, and notification state.</p>",
-            "simpleType" : "Property",
-            "variableSetterType" : "Property"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetId", "assetName", "assetModelId", "assetProperty" ],
-      "shapeName" : "DescribeAssetPropertyResult",
+      "required" : [ "assetId" ],
+      "shapeName" : "DeleteAssetRequest",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAssetPropertyResult",
-        "variableName" : "describeAssetPropertyResult",
-        "variableType" : "DescribeAssetPropertyResult",
+        "variableDeclarationType" : "DeleteAssetRequest",
+        "variableName" : "deleteAssetRequest",
+        "variableType" : "DeleteAssetRequest",
         "documentation" : null,
-        "simpleType" : "DescribeAssetPropertyResult",
-        "variableSetterType" : "DescribeAssetPropertyResult"
+        "simpleType" : "DeleteAssetRequest",
+        "variableSetterType" : "DeleteAssetRequest"
       },
       "wrapper" : false
     },
-    "DescribeAssetRequest" : {
-      "c2jName" : "DescribeAssetRequest",
+    "DeleteAssetResult" : {
+      "c2jName" : "DeleteAssetResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -38145,33 +36237,26 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteAssetResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "DescribeAsset",
-        "locationName" : null,
-        "requestUri" : "/assets/{assetId}",
-        "target" : null,
-        "verb" : "GET",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
+        "c2jName" : "assetStatus",
+        "c2jShape" : "AssetStatus",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetStatus",
+        "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getAssetStatus",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "AssetStatus",
           "documentation" : null
         },
         "http" : {
@@ -38182,14 +36267,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "uri",
-          "marshallLocation" : "PATH",
-          "marshallLocationName" : "assetId",
-          "queryString" : false,
-          "requiresLength" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetStatus",
+          "queryString" : false,
+          "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : true
+          "unmarshallLocationName" : "assetStatus",
+          "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -38198,51 +36283,51 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setAssetStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
+          "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "AssetStatus" : {
+          "c2jName" : "assetStatus",
+          "c2jShape" : "AssetStatus",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetStatus",
+          "getterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getAssetStatus",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "AssetStatus",
             "documentation" : null
           },
           "http" : {
@@ -38253,14 +36338,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "uri",
-            "marshallLocation" : "PATH",
-            "marshallLocationName" : "assetId",
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetStatus",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
-            "uri" : true
+            "unmarshallLocationName" : "assetStatus",
+            "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -38269,59 +36354,62 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetStatus",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setAssetStatus",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetId",
-            "variableType" : "String",
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "assetStatus",
+            "variableType" : "AssetStatus",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param assetStatus The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "assetId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "AssetStatus",
+            "variableName" : "assetStatus",
+            "variableType" : "AssetStatus",
+            "documentation" : "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "AssetStatus",
+            "variableSetterType" : "AssetStatus"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetId" ],
-      "shapeName" : "DescribeAssetRequest",
+      "required" : [ "assetStatus" ],
+      "shapeName" : "DeleteAssetResult",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "DescribeAssetRequest",
-        "variableName" : "describeAssetRequest",
-        "variableType" : "DescribeAssetRequest",
+        "variableDeclarationType" : "DeleteAssetResult",
+        "variableName" : "deleteAssetResult",
+        "variableType" : "DeleteAssetResult",
         "documentation" : null,
-        "simpleType" : "DescribeAssetRequest",
-        "variableSetterType" : "DescribeAssetRequest"
+        "simpleType" : "DeleteAssetResult",
+        "variableSetterType" : "DeleteAssetResult"
       },
       "wrapper" : false
     },
-    "DescribeAssetResult" : {
-      "c2jName" : "DescribeAssetResponse",
+    "DeleteDashboardRequest" : {
+      "c2jName" : "DeleteDashboardRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -38333,24 +36421,31 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteDashboardRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : null,
+      "marshaller" : {
+        "action" : "DeleteDashboard",
+        "locationName" : null,
+        "requestUri" : "/dashboards/{dashboardId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
       "members" : [ {
-        "c2jName" : "assetId",
+        "c2jName" : "dashboardId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
+        "documentation" : "<p>The ID of the dashboard to delete.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
+        "fluentSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withDashboardId",
+        "getterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@return The ID of the dashboard to delete.*/",
+        "getterMethodName" : "getDashboardId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -38363,14 +36458,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetId",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "dashboardId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : false
+          "unmarshallLocationName" : "dashboardId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -38381,14 +36476,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetId",
+        "name" : "DashboardId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
+        "setterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.*/",
+        "setterMethodName" : "setDashboardId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "dashboardId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -38398,28 +36493,28 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetId",
+          "variableName" : "dashboardId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the dashboard to delete.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetArn",
-        "c2jShape" : "ARN",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "getterMethodName" : "getAssetArn",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -38432,16 +36527,16 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetArn",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetArn",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
@@ -38450,14 +36545,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetArn",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-        "setterMethodName" : "setAssetArn",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -38467,28 +36562,261 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetArn",
+          "variableName" : "clientToken",
           "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetName",
-        "c2jShape" : "Name",
+      } ],
+      "membersAsMap" : {
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
+          "deprecated" : false,
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
+          },
+          "idempotencyToken" : true,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ClientToken",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "DashboardId" : {
+          "c2jName" : "dashboardId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the dashboard to delete.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withDashboardId",
+          "getterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@return The ID of the dashboard to delete.*/",
+          "getterMethodName" : "getDashboardId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "dashboardId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "dashboardId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "DashboardId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.*/",
+          "setterMethodName" : "setDashboardId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "dashboardId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the dashboard to delete.</p>\n@param dashboardId The ID of the dashboard to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "dashboardId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the dashboard to delete.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "dashboardId" ],
+      "shapeName" : "DeleteDashboardRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteDashboardRequest",
+        "variableName" : "deleteDashboardRequest",
+        "variableType" : "DeleteDashboardRequest",
+        "documentation" : null,
+        "simpleType" : "DeleteDashboardRequest",
+        "variableSetterType" : "DeleteDashboardRequest"
+      },
+      "wrapper" : false
+    },
+    "DeleteDashboardResult" : {
+      "c2jName" : "DeleteDashboardResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteDashboardResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "DeleteDashboardResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteDashboardResult",
+        "variableName" : "deleteDashboardResult",
+        "variableType" : "DeleteDashboardResult",
+        "documentation" : null,
+        "simpleType" : "DeleteDashboardResult",
+        "variableSetterType" : "DeleteDashboardResult"
+      },
+      "wrapper" : false
+    },
+    "DeleteGatewayRequest" : {
+      "c2jName" : "DeleteGatewayRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteGatewayRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DeleteGateway",
+        "locationName" : null,
+        "requestUri" : "/20200301/gateways/{gatewayId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "gatewayId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The name of the asset.</p>",
+        "documentation" : "<p>The ID of the gateway to delete.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetName",
-        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
-        "getterMethodName" : "getAssetName",
+        "fluentSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGatewayId",
+        "getterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@return The ID of the gateway to delete.*/",
+        "getterMethodName" : "getGatewayId",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -38501,14 +36829,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetName",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "gatewayId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetName",
-          "uri" : false
+          "unmarshallLocationName" : "gatewayId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -38519,14 +36847,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetName",
+        "name" : "GatewayId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
-        "setterMethodName" : "setAssetName",
+        "setterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.*/",
+        "setterMethodName" : "setGatewayId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "gatewayId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -38536,48 +36864,211 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetName",
+          "variableName" : "gatewayId",
           "variableType" : "String",
-          "documentation" : "<p>The name of the asset.</p>",
+          "documentation" : "<p>The ID of the gateway to delete.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetModelId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the asset model that was used to create the asset.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelId",
-        "getterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@return The ID of the asset model that was used to create the asset.*/",
-        "getterMethodName" : "getAssetModelId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
+      } ],
+      "membersAsMap" : {
+        "GatewayId" : {
+          "c2jName" : "gatewayId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the gateway to delete.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGatewayId",
+          "getterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@return The ID of the gateway to delete.*/",
+          "getterMethodName" : "getGatewayId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "gatewayId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "gatewayId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "GatewayId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.*/",
+          "setterMethodName" : "setGatewayId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "gatewayId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the gateway to delete.</p>\n@param gatewayId The ID of the gateway to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "gatewayId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the gateway to delete.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "gatewayId" ],
+      "shapeName" : "DeleteGatewayRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteGatewayRequest",
+        "variableName" : "deleteGatewayRequest",
+        "variableType" : "DeleteGatewayRequest",
+        "documentation" : null,
+        "simpleType" : "DeleteGatewayRequest",
+        "variableSetterType" : "DeleteGatewayRequest"
+      },
+      "wrapper" : false
+    },
+    "DeleteGatewayResult" : {
+      "c2jName" : "DeleteGatewayResult",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : null,
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteGatewayResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "DeleteGatewayResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteGatewayResult",
+        "variableName" : "deleteGatewayResult",
+        "variableType" : "DeleteGatewayResult",
+        "documentation" : null,
+        "simpleType" : "DeleteGatewayResult",
+        "variableSetterType" : "DeleteGatewayResult"
+      },
+      "wrapper" : false
+    },
+    "DeletePortalRequest" : {
+      "c2jName" : "DeletePortalRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeletePortalRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DeletePortal",
+        "locationName" : null,
+        "requestUri" : "/portals/{portalId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "portalId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the portal to delete.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalId",
+        "getterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@return The ID of the portal to delete.*/",
+        "getterMethodName" : "getPortalId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
           "flattened" : false,
           "greedy" : false,
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelId",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "portalId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelId",
-          "uri" : false
+          "unmarshallLocationName" : "portalId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -38588,14 +37079,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "AssetModelId",
+        "name" : "PortalId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.*/",
-        "setterMethodName" : "setAssetModelId",
+        "setterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.*/",
+        "setterMethodName" : "setPortalId",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "portalId",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -38605,30 +37096,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "assetModelId",
+          "variableName" : "portalId",
           "variableType" : "String",
-          "documentation" : "<p>The ID of the asset model that was used to create the asset.</p>",
+          "documentation" : "<p>The ID of the portal to delete.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetProperties",
-        "c2jShape" : "AssetProperties",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The list of asset properties for the asset.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@param assetProperties The list of asset properties for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetProperties",
-        "getterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@return The list of asset properties for the asset.*/",
-        "getterMethodName" : "getAssetProperties",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
-          "returnType" : "java.util.List<AssetProperty>",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -38639,302 +37130,247 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetProperties",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetProperties",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetProperty",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetProperty",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetProperty",
-              "variableName" : "member",
-              "variableType" : "AssetProperty",
-              "documentation" : "",
-              "simpleType" : "AssetProperty",
-              "variableSetterType" : "AssetProperty"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetProperty",
-              "variableName" : "member",
-              "variableType" : "AssetProperty",
-              "documentation" : "",
-              "simpleType" : "AssetProperty",
-              "variableSetterType" : "AssetProperty"
-            },
-            "xmlNameSpaceUri" : null
-          },
-          "memberLocationName" : null,
-          "memberType" : "AssetProperty",
-          "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetProperty",
-          "templateImplType" : "java.util.ArrayList<AssetProperty>",
-          "templateType" : "java.util.List<AssetProperty>"
-        },
+        "list" : false,
+        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetProperties",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@param assetProperties The list of asset properties for the asset.*/",
-        "setterMethodName" : "setAssetProperties",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetProperty>",
-          "variableName" : "assetProperties",
-          "variableType" : "java.util.List<AssetProperty>",
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "List<AssetProperty>",
-          "variableSetterType" : "java.util.Collection<AssetProperty>"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetProperties(java.util.Collection)} or {@link #withAssetProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetProperties The list of asset properties for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetProperty>",
-          "variableName" : "assetProperties",
-          "variableType" : "java.util.List<AssetProperty>",
-          "documentation" : "<p>The list of asset properties for the asset.</p>",
-          "simpleType" : "List<AssetProperty>",
-          "variableSetterType" : "java.util.Collection<AssetProperty>"
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetHierarchies",
-        "c2jShape" : "AssetHierarchies",
-        "deprecated" : false,
-        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetHierarchies",
-        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "getterMethodName" : "getAssetHierarchies",
-        "getterModel" : {
-          "returnType" : "java.util.List<AssetHierarchy>",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetHierarchies",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetHierarchies",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : true,
-        "listModel" : {
-          "implType" : "java.util.ArrayList",
-          "interfaceType" : "java.util.List",
-          "listMemberModel" : {
-            "c2jName" : "member",
-            "c2jShape" : "AssetHierarchy",
-            "deprecated" : false,
-            "documentation" : "",
-            "endpointDiscoveryId" : false,
-            "enumType" : null,
-            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "fluentSetterMethodName" : "withMember",
-            "getterDocumentation" : "/**\n@return */",
-            "getterMethodName" : "getMember",
-            "getterModel" : {
-              "returnType" : "AssetHierarchy",
-              "documentation" : null
-            },
-            "http" : {
-              "additionalMarshallingPath" : null,
-              "additionalUnmarshallingPath" : null,
-              "flattened" : false,
-              "greedy" : false,
-              "header" : false,
-              "isPayload" : false,
-              "isStreaming" : false,
-              "location" : null,
-              "marshallLocation" : "PAYLOAD",
-              "marshallLocationName" : "member",
-              "queryString" : false,
-              "requiresLength" : false,
-              "statusCode" : false,
-              "unmarshallLocationName" : "member",
-              "uri" : false
-            },
-            "idempotencyToken" : false,
-            "isBinary" : false,
-            "jsonValue" : false,
-            "list" : false,
-            "listModel" : null,
-            "map" : false,
-            "mapModel" : null,
-            "marshallingTargetClass" : "StructuredPojo",
-            "marshallingType" : "STRUCTURED",
-            "name" : "Member",
-            "sensitive" : false,
-            "setterDocumentation" : "/**\n@param member */",
-            "setterMethodName" : "setMember",
-            "setterModel" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "shouldEmitLegacyEnumSetter" : false,
-            "shouldFullyQualify" : false,
-            "simple" : false,
-            "unmarshallingType" : null,
-            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-            "variable" : {
-              "timestampFormat" : null,
-              "variableDeclarationType" : "AssetHierarchy",
-              "variableName" : "member",
-              "variableType" : "AssetHierarchy",
-              "documentation" : "",
-              "simpleType" : "AssetHierarchy",
-              "variableSetterType" : "AssetHierarchy"
-            },
-            "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
+          "deprecated" : false,
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
           },
-          "memberLocationName" : null,
-          "memberType" : "AssetHierarchy",
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "clientToken",
+            "uri" : false
+          },
+          "idempotencyToken" : true,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
           "map" : false,
-          "marshallNonAutoConstructedEmptyLists" : false,
-          "memberAdditionalMarshallingPath" : null,
-          "memberAdditionalUnmarshallingPath" : null,
-          "sendEmptyQueryString" : false,
-          "simple" : false,
-          "simpleType" : "AssetHierarchy",
-          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-          "templateType" : "java.util.List<AssetHierarchy>"
-        },
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "List",
-        "marshallingType" : "LIST",
-        "name" : "AssetHierarchies",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-        "setterMethodName" : "setAssetHierarchies",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "assetHierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetHierarchies(java.util.Collection)} or {@link #withAssetHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-          "variableName" : "assetHierarchies",
-          "variableType" : "java.util.List<AssetHierarchy>",
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-          "simpleType" : "List<AssetHierarchy>",
-          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ClientToken",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "clientToken",
+            "variableType" : "String",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetCreationDate",
-        "c2jShape" : "Timestamp",
+        "PortalId" : {
+          "c2jName" : "portalId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the portal to delete.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalId",
+          "getterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@return The ID of the portal to delete.*/",
+          "getterMethodName" : "getPortalId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "portalId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "portalId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PortalId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.*/",
+          "setterMethodName" : "setPortalId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the portal to delete.</p>\n@param portalId The ID of the portal to delete.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "portalId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the portal to delete.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "portalId" ],
+      "shapeName" : "DeletePortalRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeletePortalRequest",
+        "variableName" : "deletePortalRequest",
+        "variableType" : "DeletePortalRequest",
+        "documentation" : null,
+        "simpleType" : "DeletePortalRequest",
+        "variableSetterType" : "DeletePortalRequest"
+      },
+      "wrapper" : false
+    },
+    "DeletePortalResult" : {
+      "c2jName" : "DeletePortalResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeletePortalResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "portalStatus",
+        "c2jShape" : "PortalStatus",
         "deprecated" : false,
-        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+        "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetCreationDate",
-        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
-        "getterMethodName" : "getAssetCreationDate",
+        "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPortalStatus",
+        "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "getterMethodName" : "getPortalStatus",
         "getterModel" : {
-          "returnType" : "java.util.Date",
+          "returnType" : "PortalStatus",
           "documentation" : null
         },
         "http" : {
@@ -38947,11 +37383,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetCreationDate",
+          "marshallLocationName" : "portalStatus",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetCreationDate",
+          "unmarshallLocationName" : "portalStatus",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -38961,49 +37397,171 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "AssetCreationDate",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "PortalStatus",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.*/",
-        "setterMethodName" : "setAssetCreationDate",
+        "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+        "setterMethodName" : "setPortalStatus",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetCreationDate",
-          "variableType" : "java.util.Date",
+          "variableDeclarationType" : "PortalStatus",
+          "variableName" : "portalStatus",
+          "variableType" : "PortalStatus",
           "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "simpleType" : "PortalStatus",
+          "variableSetterType" : "PortalStatus"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetCreationDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "timestampFormat" : null,
+          "variableDeclarationType" : "PortalStatus",
+          "variableName" : "portalStatus",
+          "variableType" : "PortalStatus",
+          "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "simpleType" : "PortalStatus",
+          "variableSetterType" : "PortalStatus"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "assetLastUpdateDate",
-        "c2jShape" : "Timestamp",
+      } ],
+      "membersAsMap" : {
+        "PortalStatus" : {
+          "c2jName" : "portalStatus",
+          "c2jShape" : "PortalStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPortalStatus",
+          "getterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@return The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "getterMethodName" : "getPortalStatus",
+          "getterModel" : {
+            "returnType" : "PortalStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "portalStatus",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "portalStatus",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "PortalStatus",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.*/",
+          "setterMethodName" : "setPortalStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PortalStatus",
+            "variableName" : "portalStatus",
+            "variableType" : "PortalStatus",
+            "documentation" : "",
+            "simpleType" : "PortalStatus",
+            "variableSetterType" : "PortalStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>\n@param portalStatus The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "PortalStatus",
+            "variableName" : "portalStatus",
+            "variableType" : "PortalStatus",
+            "documentation" : "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully calling this operation) and any error message.</p>",
+            "simpleType" : "PortalStatus",
+            "variableSetterType" : "PortalStatus"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "portalStatus" ],
+      "shapeName" : "DeletePortalResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeletePortalResult",
+        "variableName" : "deletePortalResult",
+        "variableType" : "DeletePortalResult",
+        "documentation" : null,
+        "simpleType" : "DeletePortalResult",
+        "variableSetterType" : "DeletePortalResult"
+      },
+      "wrapper" : false
+    },
+    "DeleteProjectRequest" : {
+      "c2jName" : "DeleteProjectRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DeleteProjectRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DeleteProject",
+        "locationName" : null,
+        "requestUri" : "/projects/{projectId}",
+        "target" : null,
+        "verb" : "DELETE",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "projectId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+        "documentation" : "<p>The ID of the project.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetLastUpdateDate",
-        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
-        "getterMethodName" : "getAssetLastUpdateDate",
+        "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withProjectId",
+        "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
+        "getterMethodName" : "getProjectId",
         "getterModel" : {
-          "returnType" : "java.util.Date",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -39014,14 +37572,14 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetLastUpdateDate",
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "projectId",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetLastUpdateDate",
-          "uri" : false
+          "unmarshallLocationName" : "projectId",
+          "uri" : true
         },
         "idempotencyToken" : false,
         "isBinary" : false,
@@ -39030,49 +37588,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "java.util.Date",
-        "marshallingType" : "DATE",
-        "name" : "AssetLastUpdateDate",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ProjectId",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
-        "setterMethodName" : "setAssetLastUpdateDate",
+        "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
+        "setterMethodName" : "setProjectId",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetLastUpdateDate",
-          "variableType" : "java.util.Date",
+          "variableDeclarationType" : "String",
+          "variableName" : "projectId",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
-          "timestampFormat" : "unixTimestamp",
-          "variableDeclarationType" : "java.util.Date",
-          "variableName" : "assetLastUpdateDate",
-          "variableType" : "java.util.Date",
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
-          "simpleType" : "Date",
-          "variableSetterType" : "java.util.Date"
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "projectId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the project.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "assetStatus",
-        "c2jShape" : "AssetStatus",
+        "c2jName" : "clientToken",
+        "c2jShape" : "ClientToken",
         "deprecated" : false,
-        "documentation" : "<p>The current status of the asset, which contains a state and any error message.</p>",
+        "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetStatus",
-        "getterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@return The current status of the asset, which contains a state and any error message.*/",
-        "getterMethodName" : "getAssetStatus",
+        "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withClientToken",
+        "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "getterMethodName" : "getClientToken",
         "getterModel" : {
-          "returnType" : "AssetStatus",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -39083,65 +37641,65 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetStatus",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "clientToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetStatus",
+          "unmarshallLocationName" : "clientToken",
           "uri" : false
         },
-        "idempotencyToken" : false,
+        "idempotencyToken" : true,
         "isBinary" : false,
         "jsonValue" : false,
         "list" : false,
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "AssetStatus",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ClientToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.*/",
-        "setterMethodName" : "setAssetStatus",
+        "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+        "setterMethodName" : "setClientToken",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetStatus",
-          "variableName" : "assetStatus",
-          "variableType" : "AssetStatus",
-          "documentation" : "<p>The current status of the asset, which contains a state and any error message.</p>",
-          "simpleType" : "AssetStatus",
-          "variableSetterType" : "AssetStatus"
+          "variableDeclarationType" : "String",
+          "variableName" : "clientToken",
+          "variableType" : "String",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetArn" : {
-          "c2jName" : "assetArn",
-          "c2jShape" : "ARN",
+        "ClientToken" : {
+          "c2jName" : "clientToken",
+          "c2jShape" : "ClientToken",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "getterMethodName" : "getAssetArn",
+          "fluentSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withClientToken",
+          "getterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@return A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "getterMethodName" : "getClientToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -39154,16 +37712,16 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetArn",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "clientToken",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetArn",
+            "unmarshallLocationName" : "clientToken",
             "uri" : false
           },
-          "idempotencyToken" : false,
+          "idempotencyToken" : true,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -39172,14 +37730,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetArn",
+          "name" : "ClientToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
-          "setterMethodName" : "setAssetArn",
+          "setterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.*/",
+          "setterMethodName" : "setClientToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -39189,31 +37747,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>\n@param clientToken A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetArn",
+            "variableName" : "clientToken",
             "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+            "documentation" : "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "AssetCreationDate" : {
-          "c2jName" : "assetCreationDate",
-          "c2jShape" : "Timestamp",
+        "ProjectId" : {
+          "c2jName" : "projectId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "documentation" : "<p>The ID of the project.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetCreationDate",
-          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
-          "getterMethodName" : "getAssetCreationDate",
+          "fluentSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withProjectId",
+          "getterDocumentation" : "/**<p>The ID of the project.</p>\n@return The ID of the project.*/",
+          "getterMethodName" : "getProjectId",
           "getterModel" : {
-            "returnType" : "java.util.Date",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -39224,14 +37782,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetCreationDate",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "projectId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetCreationDate",
-            "uri" : false
+            "unmarshallLocationName" : "projectId",
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -39240,202 +37798,210 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.util.Date",
-          "marshallingType" : "DATE",
-          "name" : "AssetCreationDate",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ProjectId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.*/",
-          "setterMethodName" : "setAssetCreationDate",
+          "setterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.*/",
+          "setterMethodName" : "setProjectId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetCreationDate",
-            "variableType" : "java.util.Date",
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : "unixTimestamp",
-            "variableDeclarationType" : "java.util.Date",
-            "variableName" : "assetCreationDate",
-            "variableType" : "java.util.Date",
-            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
-            "simpleType" : "Date",
-            "variableSetterType" : "java.util.Date"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "AssetHierarchies" : {
-          "c2jName" : "assetHierarchies",
-          "c2jShape" : "AssetHierarchies",
-          "deprecated" : false,
-          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetHierarchies",
-          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "getterMethodName" : "getAssetHierarchies",
-          "getterModel" : {
-            "returnType" : "java.util.List<AssetHierarchy>",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetHierarchies",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetHierarchies",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : true,
-          "listModel" : {
-            "implType" : "java.util.ArrayList",
-            "interfaceType" : "java.util.List",
-            "listMemberModel" : {
-              "c2jName" : "member",
-              "c2jShape" : "AssetHierarchy",
-              "deprecated" : false,
-              "documentation" : "",
-              "endpointDiscoveryId" : false,
-              "enumType" : null,
-              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "fluentSetterMethodName" : "withMember",
-              "getterDocumentation" : "/**\n@return */",
-              "getterMethodName" : "getMember",
-              "getterModel" : {
-                "returnType" : "AssetHierarchy",
-                "documentation" : null
-              },
-              "http" : {
-                "additionalMarshallingPath" : null,
-                "additionalUnmarshallingPath" : null,
-                "flattened" : false,
-                "greedy" : false,
-                "header" : false,
-                "isPayload" : false,
-                "isStreaming" : false,
-                "location" : null,
-                "marshallLocation" : "PAYLOAD",
-                "marshallLocationName" : "member",
-                "queryString" : false,
-                "requiresLength" : false,
-                "statusCode" : false,
-                "unmarshallLocationName" : "member",
-                "uri" : false
-              },
-              "idempotencyToken" : false,
-              "isBinary" : false,
-              "jsonValue" : false,
-              "list" : false,
-              "listModel" : null,
-              "map" : false,
-              "mapModel" : null,
-              "marshallingTargetClass" : "StructuredPojo",
-              "marshallingType" : "STRUCTURED",
-              "name" : "Member",
-              "sensitive" : false,
-              "setterDocumentation" : "/**\n@param member */",
-              "setterMethodName" : "setMember",
-              "setterModel" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "shouldEmitLegacyEnumSetter" : false,
-              "shouldFullyQualify" : false,
-              "simple" : false,
-              "unmarshallingType" : null,
-              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
-              "variable" : {
-                "timestampFormat" : null,
-                "variableDeclarationType" : "AssetHierarchy",
-                "variableName" : "member",
-                "variableType" : "AssetHierarchy",
-                "documentation" : "",
-                "simpleType" : "AssetHierarchy",
-                "variableSetterType" : "AssetHierarchy"
-              },
-              "xmlNameSpaceUri" : null
-            },
-            "memberLocationName" : null,
-            "memberType" : "AssetHierarchy",
-            "map" : false,
-            "marshallNonAutoConstructedEmptyLists" : false,
-            "memberAdditionalMarshallingPath" : null,
-            "memberAdditionalUnmarshallingPath" : null,
-            "sendEmptyQueryString" : false,
-            "simple" : false,
-            "simpleType" : "AssetHierarchy",
-            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
-            "templateType" : "java.util.List<AssetHierarchy>"
-          },
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "AssetHierarchies",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
-          "setterMethodName" : "setAssetHierarchies",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "assetHierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
-            "documentation" : "",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetHierarchies(java.util.Collection)} or {@link #withAssetHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the project.</p>\n@param projectId The ID of the project.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
-            "variableName" : "assetHierarchies",
-            "variableType" : "java.util.List<AssetHierarchy>",
-            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
-            "simpleType" : "List<AssetHierarchy>",
-            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+            "variableDeclarationType" : "String",
+            "variableName" : "projectId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the project.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "projectId" ],
+      "shapeName" : "DeleteProjectRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteProjectRequest",
+        "variableName" : "deleteProjectRequest",
+        "variableType" : "DeleteProjectRequest",
+        "documentation" : null,
+        "simpleType" : "DeleteProjectRequest",
+        "variableSetterType" : "DeleteProjectRequest"
+      },
+      "wrapper" : false
+    },
+    "DeleteProjectResult" : {
+      "c2jName" : "DeleteProjectResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DeleteProjectResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "DeleteProjectResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DeleteProjectResult",
+        "variableName" : "deleteProjectResult",
+        "variableType" : "DeleteProjectResult",
+        "documentation" : null,
+        "simpleType" : "DeleteProjectResult",
+        "variableSetterType" : "DeleteProjectResult"
+      },
+      "wrapper" : false
+    },
+    "DescribeAccessPolicyRequest" : {
+      "c2jName" : "DescribeAccessPolicyRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAccessPolicyRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DescribeAccessPolicy",
+        "locationName" : null,
+        "requestUri" : "/access-policies/{accessPolicyId}",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "accessPolicyId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the access policy.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyId",
+        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+        "getterMethodName" : "getAccessPolicyId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "AssetId" : {
-          "c2jName" : "assetId",
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "accessPolicyId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+        "setterMethodName" : "setAccessPolicyId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the access policy.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AccessPolicyId" : {
+          "c2jName" : "accessPolicyId",
           "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The ID of the access policy.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyId",
+          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+          "getterMethodName" : "getAccessPolicyId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -39448,14 +38014,14 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetId",
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "accessPolicyId",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
-            "uri" : false
+            "unmarshallLocationName" : "accessPolicyId",
+            "uri" : true
           },
           "idempotencyToken" : false,
           "isBinary" : false,
@@ -39466,14 +38032,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "AccessPolicyId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+          "setterMethodName" : "setAccessPolicyId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "accessPolicyId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -39483,51 +38049,5953 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "accessPolicyId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
+            "documentation" : "<p>The ID of the access policy.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "accessPolicyId" ],
+      "shapeName" : "DescribeAccessPolicyRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAccessPolicyRequest",
+        "variableName" : "describeAccessPolicyRequest",
+        "variableType" : "DescribeAccessPolicyRequest",
+        "documentation" : null,
+        "simpleType" : "DescribeAccessPolicyRequest",
+        "variableSetterType" : "DescribeAccessPolicyRequest"
+      },
+      "wrapper" : false
+    },
+    "DescribeAccessPolicyResult" : {
+      "c2jName" : "DescribeAccessPolicyResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAccessPolicyResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "accessPolicyId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the access policy.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyId",
+        "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+        "getterMethodName" : "getAccessPolicyId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "AssetLastUpdateDate" : {
-          "c2jName" : "assetLastUpdateDate",
-          "c2jShape" : "Timestamp",
-          "deprecated" : false,
-          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetLastUpdateDate",
-          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
-          "getterMethodName" : "getAssetLastUpdateDate",
-          "getterModel" : {
-            "returnType" : "java.util.Date",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetLastUpdateDate",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "assetLastUpdateDate",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+        "setterMethodName" : "setAccessPolicyId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the access policy.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyArn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+        "getterMethodName" : "getAccessPolicyArn",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyArn",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyArn",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyArn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+        "setterMethodName" : "setAccessPolicyArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyArn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyArn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyIdentity",
+        "c2jShape" : "Identity",
+        "deprecated" : false,
+        "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyIdentity",
+        "getterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@return The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
+        "getterMethodName" : "getAccessPolicyIdentity",
+        "getterModel" : {
+          "returnType" : "Identity",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyIdentity",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyIdentity",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AccessPolicyIdentity",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
+        "setterMethodName" : "setAccessPolicyIdentity",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Identity",
+          "variableName" : "accessPolicyIdentity",
+          "variableType" : "Identity",
+          "documentation" : "",
+          "simpleType" : "Identity",
+          "variableSetterType" : "Identity"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Identity",
+          "variableName" : "accessPolicyIdentity",
+          "variableType" : "Identity",
+          "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+          "simpleType" : "Identity",
+          "variableSetterType" : "Identity"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyResource",
+        "c2jShape" : "Resource",
+        "deprecated" : false,
+        "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyResource",
+        "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@return The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
+        "getterMethodName" : "getAccessPolicyResource",
+        "getterModel" : {
+          "returnType" : "Resource",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyResource",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyResource",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AccessPolicyResource",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
+        "setterMethodName" : "setAccessPolicyResource",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Resource",
+          "variableName" : "accessPolicyResource",
+          "variableType" : "Resource",
+          "documentation" : "",
+          "simpleType" : "Resource",
+          "variableSetterType" : "Resource"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Resource",
+          "variableName" : "accessPolicyResource",
+          "variableType" : "Resource",
+          "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+          "simpleType" : "Resource",
+          "variableSetterType" : "Resource"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyPermission",
+        "c2jShape" : "Permission",
+        "deprecated" : false,
+        "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "Permission",
+        "fluentSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+        "fluentSetterMethodName" : "withAccessPolicyPermission",
+        "getterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+        "getterMethodName" : "getAccessPolicyPermission",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyPermission",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyPermission",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AccessPolicyPermission",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+        "setterMethodName" : "setAccessPolicyPermission",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyPermission",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "accessPolicyPermission",
+          "variableType" : "String",
+          "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyCreationDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyCreationDate",
+        "getterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@return The date the access policy was created, in Unix epoch time.*/",
+        "getterMethodName" : "getAccessPolicyCreationDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyCreationDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyCreationDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AccessPolicyCreationDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.*/",
+        "setterMethodName" : "setAccessPolicyCreationDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "accessPolicyCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "accessPolicyCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "accessPolicyLastUpdateDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicyLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@return The date the access policy was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getAccessPolicyLastUpdateDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicyLastUpdateDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "accessPolicyLastUpdateDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AccessPolicyLastUpdateDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setAccessPolicyLastUpdateDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "accessPolicyLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "accessPolicyLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AccessPolicyArn" : {
+          "c2jName" : "accessPolicyArn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+          "getterMethodName" : "getAccessPolicyArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AccessPolicyArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>*/",
+          "setterMethodName" : "setAccessPolicyArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>\n@param accessPolicyArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyArn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyCreationDate" : {
+          "c2jName" : "accessPolicyCreationDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyCreationDate",
+          "getterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@return The date the access policy was created, in Unix epoch time.*/",
+          "getterMethodName" : "getAccessPolicyCreationDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyCreationDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyCreationDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "AccessPolicyCreationDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.*/",
+          "setterMethodName" : "setAccessPolicyCreationDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "accessPolicyCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the access policy was created, in Unix epoch time.</p>\n@param accessPolicyCreationDate The date the access policy was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "accessPolicyCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the access policy was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyId" : {
+          "c2jName" : "accessPolicyId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the access policy.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyId",
+          "getterDocumentation" : "/**<p>The ID of the access policy.</p>\n@return The ID of the access policy.*/",
+          "getterMethodName" : "getAccessPolicyId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AccessPolicyId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.*/",
+          "setterMethodName" : "setAccessPolicyId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the access policy.</p>\n@param accessPolicyId The ID of the access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the access policy.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyIdentity" : {
+          "c2jName" : "accessPolicyIdentity",
+          "c2jShape" : "Identity",
+          "deprecated" : false,
+          "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyIdentity",
+          "getterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@return The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
+          "getterMethodName" : "getAccessPolicyIdentity",
+          "getterModel" : {
+            "returnType" : "Identity",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyIdentity",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyIdentity",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AccessPolicyIdentity",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.*/",
+          "setterMethodName" : "setAccessPolicyIdentity",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Identity",
+            "variableName" : "accessPolicyIdentity",
+            "variableType" : "Identity",
+            "documentation" : "",
+            "simpleType" : "Identity",
+            "variableSetterType" : "Identity"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>\n@param accessPolicyIdentity The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Identity",
+            "variableName" : "accessPolicyIdentity",
+            "variableType" : "Identity",
+            "documentation" : "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy applies.</p>",
+            "simpleType" : "Identity",
+            "variableSetterType" : "Identity"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyLastUpdateDate" : {
+          "c2jName" : "accessPolicyLastUpdateDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@return The date the access policy was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getAccessPolicyLastUpdateDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyLastUpdateDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyLastUpdateDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "AccessPolicyLastUpdateDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.*/",
+          "setterMethodName" : "setAccessPolicyLastUpdateDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "accessPolicyLastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the access policy was last updated, in Unix epoch time.</p>\n@param accessPolicyLastUpdateDate The date the access policy was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "accessPolicyLastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the access policy was last updated, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyPermission" : {
+          "c2jName" : "accessPolicyPermission",
+          "c2jShape" : "Permission",
+          "deprecated" : false,
+          "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "Permission",
+          "fluentSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+          "fluentSetterMethodName" : "withAccessPolicyPermission",
+          "getterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@return The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+          "getterMethodName" : "getAccessPolicyPermission",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyPermission",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyPermission",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AccessPolicyPermission",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@see Permission*/",
+          "setterMethodName" : "setAccessPolicyPermission",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyPermission",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>\n@param accessPolicyPermission The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.\n@return Returns a reference to this object so that method calls can be chained together.\n@see Permission*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "accessPolicyPermission",
+            "variableType" : "String",
+            "documentation" : "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AccessPolicyResource" : {
+          "c2jName" : "accessPolicyResource",
+          "c2jShape" : "Resource",
+          "deprecated" : false,
+          "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicyResource",
+          "getterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@return The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
+          "getterMethodName" : "getAccessPolicyResource",
+          "getterModel" : {
+            "returnType" : "Resource",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicyResource",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "accessPolicyResource",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AccessPolicyResource",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.*/",
+          "setterMethodName" : "setAccessPolicyResource",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Resource",
+            "variableName" : "accessPolicyResource",
+            "variableType" : "Resource",
+            "documentation" : "",
+            "simpleType" : "Resource",
+            "variableSetterType" : "Resource"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>\n@param accessPolicyResource The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Resource",
+            "variableName" : "accessPolicyResource",
+            "variableType" : "Resource",
+            "documentation" : "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides access.</p>",
+            "simpleType" : "Resource",
+            "variableSetterType" : "Resource"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "accessPolicyId", "accessPolicyArn", "accessPolicyIdentity", "accessPolicyResource", "accessPolicyPermission", "accessPolicyCreationDate", "accessPolicyLastUpdateDate" ],
+      "shapeName" : "DescribeAccessPolicyResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAccessPolicyResult",
+        "variableName" : "describeAccessPolicyResult",
+        "variableType" : "DescribeAccessPolicyResult",
+        "documentation" : null,
+        "simpleType" : "DescribeAccessPolicyResult",
+        "variableSetterType" : "DescribeAccessPolicyResult"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetModelRequest" : {
+      "c2jName" : "DescribeAssetModelRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetModelRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DescribeAssetModel",
+        "locationName" : null,
+        "requestUri" : "/asset-models/{assetModelId}",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+        "getterMethodName" : "getAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+        "setterMethodName" : "setAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetModelId" ],
+      "shapeName" : "DescribeAssetModelRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAssetModelRequest",
+        "variableName" : "describeAssetModelRequest",
+        "variableType" : "DescribeAssetModelRequest",
+        "documentation" : null,
+        "simpleType" : "DescribeAssetModelRequest",
+        "variableSetterType" : "DescribeAssetModelRequest"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetModelResult" : {
+      "c2jName" : "DescribeAssetModelResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetModelResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+        "getterMethodName" : "getAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+        "setterMethodName" : "setAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelArn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+        "getterMethodName" : "getAssetModelArn",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelArn",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelArn",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelArn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+        "setterMethodName" : "setAssetModelArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelArn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelArn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelName",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The name of the asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelName",
+        "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
+        "getterMethodName" : "getAssetModelName",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelName",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelName",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelName",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.*/",
+        "setterMethodName" : "setAssetModelName",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelName",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelName",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelDescription",
+        "c2jShape" : "Description",
+        "deprecated" : false,
+        "documentation" : "<p>The asset model's description.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelDescription",
+        "getterDocumentation" : "/**<p>The asset model's description.</p>\n@return The asset model's description.*/",
+        "getterMethodName" : "getAssetModelDescription",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelDescription",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelDescription",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelDescription",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.*/",
+        "setterMethodName" : "setAssetModelDescription",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelDescription",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelDescription",
+          "variableType" : "String",
+          "documentation" : "<p>The asset model's description.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelProperties",
+        "c2jShape" : "AssetModelProperties",
+        "deprecated" : false,
+        "documentation" : "<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelProperties",
+        "getterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@return The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.*/",
+        "getterMethodName" : "getAssetModelProperties",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelProperty>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelProperties",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelProperties",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelProperty",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelProperty",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelProperty",
+              "variableName" : "member",
+              "variableType" : "AssetModelProperty",
+              "documentation" : "",
+              "simpleType" : "AssetModelProperty",
+              "variableSetterType" : "AssetModelProperty"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelProperty",
+              "variableName" : "member",
+              "variableType" : "AssetModelProperty",
+              "documentation" : "",
+              "simpleType" : "AssetModelProperty",
+              "variableSetterType" : "AssetModelProperty"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelProperty",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelProperty",
+          "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
+          "templateType" : "java.util.List<AssetModelProperty>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelProperties",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.*/",
+        "setterMethodName" : "setAssetModelProperties",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+          "variableName" : "assetModelProperties",
+          "variableType" : "java.util.List<AssetModelProperty>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelProperty>",
+          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+          "variableName" : "assetModelProperties",
+          "variableType" : "java.util.List<AssetModelProperty>",
+          "documentation" : "<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>",
+          "simpleType" : "List<AssetModelProperty>",
+          "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelHierarchies",
+        "c2jShape" : "AssetModelHierarchies",
+        "deprecated" : false,
+        "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelHierarchies",
+        "getterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@return A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
+        "getterMethodName" : "getAssetModelHierarchies",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelHierarchy>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelHierarchies",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelHierarchies",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelHierarchy",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelHierarchy",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelHierarchy",
+              "variableName" : "member",
+              "variableType" : "AssetModelHierarchy",
+              "documentation" : "",
+              "simpleType" : "AssetModelHierarchy",
+              "variableSetterType" : "AssetModelHierarchy"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelHierarchy",
+              "variableName" : "member",
+              "variableType" : "AssetModelHierarchy",
+              "documentation" : "",
+              "simpleType" : "AssetModelHierarchy",
+              "variableSetterType" : "AssetModelHierarchy"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelHierarchy",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelHierarchy",
+          "templateImplType" : "java.util.ArrayList<AssetModelHierarchy>",
+          "templateType" : "java.util.List<AssetModelHierarchy>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelHierarchies",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
+        "setterMethodName" : "setAssetModelHierarchies",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
+          "variableName" : "assetModelHierarchies",
+          "variableType" : "java.util.List<AssetModelHierarchy>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
+          "variableName" : "assetModelHierarchies",
+          "variableType" : "java.util.List<AssetModelHierarchy>",
+          "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
+          "simpleType" : "List<AssetModelHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelCompositeModels",
+        "c2jShape" : "AssetModelCompositeModels",
+        "deprecated" : false,
+        "documentation" : "<p>The list of composite asset models for the asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelCompositeModels",
+        "getterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@return The list of composite asset models for the asset model.*/",
+        "getterMethodName" : "getAssetModelCompositeModels",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelCompositeModels",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelCompositeModels",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelCompositeModel",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelCompositeModel",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModel",
+              "variableSetterType" : "AssetModelCompositeModel"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModel",
+              "variableSetterType" : "AssetModelCompositeModel"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelCompositeModel",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelCompositeModel",
+          "templateImplType" : "java.util.ArrayList<AssetModelCompositeModel>",
+          "templateType" : "java.util.List<AssetModelCompositeModel>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelCompositeModels",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.*/",
+        "setterMethodName" : "setAssetModelCompositeModels",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : "<p>The list of composite asset models for the asset model.</p>",
+          "simpleType" : "List<AssetModelCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelCreationDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelCreationDate",
+        "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
+        "getterMethodName" : "getAssetModelCreationDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelCreationDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelCreationDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AssetModelCreationDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.*/",
+        "setterMethodName" : "setAssetModelCreationDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetModelCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetModelCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelLastUpdateDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getAssetModelLastUpdateDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelLastUpdateDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelLastUpdateDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AssetModelLastUpdateDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setAssetModelLastUpdateDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetModelLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetModelLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelStatus",
+        "c2jShape" : "AssetModelStatus",
+        "deprecated" : false,
+        "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelStatus",
+        "getterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@return The current status of the asset model, which contains a state and any error message.*/",
+        "getterMethodName" : "getAssetModelStatus",
+        "getterModel" : {
+          "returnType" : "AssetModelStatus",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelStatus",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelStatus",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetModelStatus",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.*/",
+        "setterMethodName" : "setAssetModelStatus",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
+          "documentation" : "",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetModelStatus",
+          "variableName" : "assetModelStatus",
+          "variableType" : "AssetModelStatus",
+          "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
+          "simpleType" : "AssetModelStatus",
+          "variableSetterType" : "AssetModelStatus"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetModelArn" : {
+          "c2jName" : "assetModelArn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+          "getterMethodName" : "getAssetModelArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>*/",
+          "setterMethodName" : "setAssetModelArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>\n@param assetModelArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelArn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelCompositeModels" : {
+          "c2jName" : "assetModelCompositeModels",
+          "c2jShape" : "AssetModelCompositeModels",
+          "deprecated" : false,
+          "documentation" : "<p>The list of composite asset models for the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelCompositeModels",
+          "getterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@return The list of composite asset models for the asset model.*/",
+          "getterMethodName" : "getAssetModelCompositeModels",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelCompositeModels",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelCompositeModels",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelCompositeModel",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelCompositeModel",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModel",
+                "variableSetterType" : "AssetModelCompositeModel"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModel",
+                "variableSetterType" : "AssetModelCompositeModel"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelCompositeModel",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelCompositeModel",
+            "templateImplType" : "java.util.ArrayList<AssetModelCompositeModel>",
+            "templateType" : "java.util.List<AssetModelCompositeModel>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelCompositeModels",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.*/",
+          "setterMethodName" : "setAssetModelCompositeModels",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The list of composite asset models for the asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The list of composite asset models for the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : "<p>The list of composite asset models for the asset model.</p>",
+            "simpleType" : "List<AssetModelCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelCreationDate" : {
+          "c2jName" : "assetModelCreationDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelCreationDate",
+          "getterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@return The date the asset model was created, in Unix epoch time.*/",
+          "getterMethodName" : "getAssetModelCreationDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelCreationDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelCreationDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "AssetModelCreationDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.*/",
+          "setterMethodName" : "setAssetModelCreationDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetModelCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset model was created, in Unix epoch time.</p>\n@param assetModelCreationDate The date the asset model was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetModelCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset model was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelDescription" : {
+          "c2jName" : "assetModelDescription",
+          "c2jShape" : "Description",
+          "deprecated" : false,
+          "documentation" : "<p>The asset model's description.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelDescription",
+          "getterDocumentation" : "/**<p>The asset model's description.</p>\n@return The asset model's description.*/",
+          "getterMethodName" : "getAssetModelDescription",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelDescription",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelDescription",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelDescription",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.*/",
+          "setterMethodName" : "setAssetModelDescription",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelDescription",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The asset model's description.</p>\n@param assetModelDescription The asset model's description.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelDescription",
+            "variableType" : "String",
+            "documentation" : "<p>The asset model's description.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelHierarchies" : {
+          "c2jName" : "assetModelHierarchies",
+          "c2jShape" : "AssetModelHierarchies",
+          "deprecated" : false,
+          "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelHierarchies",
+          "getterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@return A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
+          "getterMethodName" : "getAssetModelHierarchies",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelHierarchy>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelHierarchies",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelHierarchies",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelHierarchy",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelHierarchy",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelHierarchy",
+                "variableName" : "member",
+                "variableType" : "AssetModelHierarchy",
+                "documentation" : "",
+                "simpleType" : "AssetModelHierarchy",
+                "variableSetterType" : "AssetModelHierarchy"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelHierarchy",
+                "variableName" : "member",
+                "variableType" : "AssetModelHierarchy",
+                "documentation" : "",
+                "simpleType" : "AssetModelHierarchy",
+                "variableSetterType" : "AssetModelHierarchy"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelHierarchy",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelHierarchy",
+            "templateImplType" : "java.util.ArrayList<AssetModelHierarchy>",
+            "templateType" : "java.util.List<AssetModelHierarchy>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelHierarchies",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.*/",
+          "setterMethodName" : "setAssetModelHierarchies",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
+            "variableName" : "assetModelHierarchies",
+            "variableType" : "java.util.List<AssetModelHierarchy>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelHierarchies(java.util.Collection)} or {@link #withAssetModelHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelHierarchies A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelHierarchy>",
+            "variableName" : "assetModelHierarchies",
+            "variableType" : "java.util.List<AssetModelHierarchy>",
+            "documentation" : "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>",
+            "simpleType" : "List<AssetModelHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelLastUpdateDate" : {
+          "c2jName" : "assetModelLastUpdateDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@return The date the asset model was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getAssetModelLastUpdateDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelLastUpdateDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelLastUpdateDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "AssetModelLastUpdateDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.*/",
+          "setterMethodName" : "setAssetModelLastUpdateDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetModelLastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset model was last updated, in Unix epoch time.</p>\n@param assetModelLastUpdateDate The date the asset model was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetModelLastUpdateDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset model was last updated, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelName" : {
+          "c2jName" : "assetModelName",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelName",
+          "getterDocumentation" : "/**<p>The name of the asset model.</p>\n@return The name of the asset model.*/",
+          "getterMethodName" : "getAssetModelName",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelName",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelName",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelName",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.*/",
+          "setterMethodName" : "setAssetModelName",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelName",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The name of the asset model.</p>\n@param assetModelName The name of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelName",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the asset model.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelProperties" : {
+          "c2jName" : "assetModelProperties",
+          "c2jShape" : "AssetModelProperties",
+          "deprecated" : false,
+          "documentation" : "<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelProperties",
+          "getterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@return The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.*/",
+          "getterMethodName" : "getAssetModelProperties",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelProperty>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelProperties",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelProperties",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelProperty",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelProperty",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelProperty",
+                "variableName" : "member",
+                "variableType" : "AssetModelProperty",
+                "documentation" : "",
+                "simpleType" : "AssetModelProperty",
+                "variableSetterType" : "AssetModelProperty"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelProperty",
+                "variableName" : "member",
+                "variableType" : "AssetModelProperty",
+                "documentation" : "",
+                "simpleType" : "AssetModelProperty",
+                "variableSetterType" : "AssetModelProperty"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelProperty",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelProperty",
+            "templateImplType" : "java.util.ArrayList<AssetModelProperty>",
+            "templateType" : "java.util.List<AssetModelProperty>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelProperties",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.*/",
+          "setterMethodName" : "setAssetModelProperties",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+            "variableName" : "assetModelProperties",
+            "variableType" : "java.util.List<AssetModelProperty>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelProperty>",
+            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelProperties(java.util.Collection)} or {@link #withAssetModelProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelProperties The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelProperty>",
+            "variableName" : "assetModelProperties",
+            "variableType" : "java.util.List<AssetModelProperty>",
+            "documentation" : "<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>",
+            "simpleType" : "List<AssetModelProperty>",
+            "variableSetterType" : "java.util.Collection<AssetModelProperty>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelStatus" : {
+          "c2jName" : "assetModelStatus",
+          "c2jShape" : "AssetModelStatus",
+          "deprecated" : false,
+          "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelStatus",
+          "getterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@return The current status of the asset model, which contains a state and any error message.*/",
+          "getterMethodName" : "getAssetModelStatus",
+          "getterModel" : {
+            "returnType" : "AssetModelStatus",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelStatus",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelStatus",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetModelStatus",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.*/",
+          "setterMethodName" : "setAssetModelStatus",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The current status of the asset model, which contains a state and any error message.</p>\n@param assetModelStatus The current status of the asset model, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetModelStatus",
+            "variableName" : "assetModelStatus",
+            "variableType" : "AssetModelStatus",
+            "documentation" : "<p>The current status of the asset model, which contains a state and any error message.</p>",
+            "simpleType" : "AssetModelStatus",
+            "variableSetterType" : "AssetModelStatus"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetModelId", "assetModelArn", "assetModelName", "assetModelDescription", "assetModelProperties", "assetModelHierarchies", "assetModelCreationDate", "assetModelLastUpdateDate", "assetModelStatus" ],
+      "shapeName" : "DescribeAssetModelResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAssetModelResult",
+        "variableName" : "describeAssetModelResult",
+        "variableType" : "DescribeAssetModelResult",
+        "documentation" : null,
+        "simpleType" : "DescribeAssetModelResult",
+        "variableSetterType" : "DescribeAssetModelResult"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetPropertyRequest" : {
+      "c2jName" : "DescribeAssetPropertyRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetPropertyRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DescribeAssetProperty",
+        "locationName" : null,
+        "requestUri" : "/assets/{assetId}/properties/{propertyId}",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "propertyId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPropertyId",
+        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+        "getterMethodName" : "getPropertyId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "propertyId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "propertyId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PropertyId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
+        "setterMethodName" : "setPropertyId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset property.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "PropertyId" : {
+          "c2jName" : "propertyId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset property.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPropertyId",
+          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+          "getterMethodName" : "getPropertyId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "propertyId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "propertyId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PropertyId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
+          "setterMethodName" : "setPropertyId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "propertyId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "propertyId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset property.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetId", "propertyId" ],
+      "shapeName" : "DescribeAssetPropertyRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAssetPropertyRequest",
+        "variableName" : "describeAssetPropertyRequest",
+        "variableType" : "DescribeAssetPropertyRequest",
+        "documentation" : null,
+        "simpleType" : "DescribeAssetPropertyRequest",
+        "variableSetterType" : "DescribeAssetPropertyRequest"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetPropertyResult" : {
+      "c2jName" : "DescribeAssetPropertyResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetPropertyResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetName",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The name of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetName",
+        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+        "getterMethodName" : "getAssetName",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetName",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetName",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetName",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
+        "setterMethodName" : "setAssetName",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetName",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetName",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+        "getterMethodName" : "getAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+        "setterMethodName" : "setAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetProperty",
+        "c2jShape" : "Property",
+        "deprecated" : false,
+        "documentation" : "<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetProperty",
+        "getterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@return The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.*/",
+        "getterMethodName" : "getAssetProperty",
+        "getterModel" : {
+          "returnType" : "Property",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetProperty",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetProperty",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetProperty",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.*/",
+        "setterMethodName" : "setAssetProperty",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Property",
+          "variableName" : "assetProperty",
+          "variableType" : "Property",
+          "documentation" : "",
+          "simpleType" : "Property",
+          "variableSetterType" : "Property"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Property",
+          "variableName" : "assetProperty",
+          "variableType" : "Property",
+          "documentation" : "<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>",
+          "simpleType" : "Property",
+          "variableSetterType" : "Property"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "compositeModel",
+        "c2jShape" : "CompositeModelProperty",
+        "deprecated" : false,
+        "documentation" : "<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withCompositeModel",
+        "getterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@return The composite asset model that declares this asset property, if this asset property exists in a composite model.*/",
+        "getterMethodName" : "getCompositeModel",
+        "getterModel" : {
+          "returnType" : "CompositeModelProperty",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "compositeModel",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "compositeModel",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "CompositeModel",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.*/",
+        "setterMethodName" : "setCompositeModel",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "CompositeModelProperty",
+          "variableName" : "compositeModel",
+          "variableType" : "CompositeModelProperty",
+          "documentation" : "",
+          "simpleType" : "CompositeModelProperty",
+          "variableSetterType" : "CompositeModelProperty"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "CompositeModelProperty",
+          "variableName" : "compositeModel",
+          "variableType" : "CompositeModelProperty",
+          "documentation" : "<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>",
+          "simpleType" : "CompositeModelProperty",
+          "variableSetterType" : "CompositeModelProperty"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetModelId" : {
+          "c2jName" : "assetModelId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelId",
+          "getterDocumentation" : "/**<p>The ID of the asset model.</p>\n@return The ID of the asset model.*/",
+          "getterMethodName" : "getAssetModelId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetModelId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.*/",
+          "setterMethodName" : "setAssetModelId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset model.</p>\n@param assetModelId The ID of the asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetModelId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset model.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetName" : {
+          "c2jName" : "assetName",
+          "c2jShape" : "Name",
+          "deprecated" : false,
+          "documentation" : "<p>The name of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetName",
+          "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+          "getterMethodName" : "getAssetName",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetName",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetName",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetName",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
+          "setterMethodName" : "setAssetName",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetName",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetName",
+            "variableType" : "String",
+            "documentation" : "<p>The name of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetProperty" : {
+          "c2jName" : "assetProperty",
+          "c2jShape" : "Property",
+          "deprecated" : false,
+          "documentation" : "<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetProperty",
+          "getterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@return The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.*/",
+          "getterMethodName" : "getAssetProperty",
+          "getterModel" : {
+            "returnType" : "Property",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetProperty",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetProperty",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "AssetProperty",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.*/",
+          "setterMethodName" : "setAssetProperty",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Property",
+            "variableName" : "assetProperty",
+            "variableType" : "Property",
+            "documentation" : "",
+            "simpleType" : "Property",
+            "variableSetterType" : "Property"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>\n@param assetProperty The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "Property",
+            "variableName" : "assetProperty",
+            "variableType" : "Property",
+            "documentation" : "<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>",
+            "simpleType" : "Property",
+            "variableSetterType" : "Property"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "CompositeModel" : {
+          "c2jName" : "compositeModel",
+          "c2jShape" : "CompositeModelProperty",
+          "deprecated" : false,
+          "documentation" : "<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withCompositeModel",
+          "getterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@return The composite asset model that declares this asset property, if this asset property exists in a composite model.*/",
+          "getterMethodName" : "getCompositeModel",
+          "getterModel" : {
+            "returnType" : "CompositeModelProperty",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "compositeModel",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "compositeModel",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "CompositeModel",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.*/",
+          "setterMethodName" : "setCompositeModel",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "CompositeModelProperty",
+            "variableName" : "compositeModel",
+            "variableType" : "CompositeModelProperty",
+            "documentation" : "",
+            "simpleType" : "CompositeModelProperty",
+            "variableSetterType" : "CompositeModelProperty"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>\n@param compositeModel The composite asset model that declares this asset property, if this asset property exists in a composite model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "CompositeModelProperty",
+            "variableName" : "compositeModel",
+            "variableType" : "CompositeModelProperty",
+            "documentation" : "<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>",
+            "simpleType" : "CompositeModelProperty",
+            "variableSetterType" : "CompositeModelProperty"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetId", "assetName", "assetModelId" ],
+      "shapeName" : "DescribeAssetPropertyResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAssetPropertyResult",
+        "variableName" : "describeAssetPropertyResult",
+        "variableType" : "DescribeAssetPropertyResult",
+        "documentation" : null,
+        "simpleType" : "DescribeAssetPropertyResult",
+        "variableSetterType" : "DescribeAssetPropertyResult"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetRequest" : {
+      "c2jName" : "DescribeAssetRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.DescribeAssetRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "DescribeAsset",
+        "locationName" : null,
+        "requestUri" : "/assets/{assetId}",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetId" ],
+      "shapeName" : "DescribeAssetRequest",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "DescribeAssetRequest",
+        "variableName" : "describeAssetRequest",
+        "variableType" : "DescribeAssetRequest",
+        "documentation" : null,
+        "simpleType" : "DescribeAssetRequest",
+        "variableSetterType" : "DescribeAssetRequest"
+      },
+      "wrapper" : false
+    },
+    "DescribeAssetResult" : {
+      "c2jName" : "DescribeAssetResponse",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.DescribeAssetResult",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetArn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "getterMethodName" : "getAssetArn",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetArn",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetArn",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetArn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+        "setterMethodName" : "setAssetArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetArn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetArn",
+          "variableType" : "String",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetName",
+        "c2jShape" : "Name",
+        "deprecated" : false,
+        "documentation" : "<p>The name of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetName",
+        "getterDocumentation" : "/**<p>The name of the asset.</p>\n@return The name of the asset.*/",
+        "getterMethodName" : "getAssetName",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetName",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetName",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetName",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.*/",
+        "setterMethodName" : "setAssetName",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetName",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The name of the asset.</p>\n@param assetName The name of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetName",
+          "variableType" : "String",
+          "documentation" : "<p>The name of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset model that was used to create the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelId",
+        "getterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@return The ID of the asset model that was used to create the asset.*/",
+        "getterMethodName" : "getAssetModelId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetModelId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.*/",
+        "setterMethodName" : "setAssetModelId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset model that was used to create the asset.</p>\n@param assetModelId The ID of the asset model that was used to create the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetModelId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset model that was used to create the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetProperties",
+        "c2jShape" : "AssetProperties",
+        "deprecated" : false,
+        "documentation" : "<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetProperties",
+        "getterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@return The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.*/",
+        "getterMethodName" : "getAssetProperties",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetProperty>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetProperties",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetProperties",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetProperty",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetProperty",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetProperty",
+              "variableName" : "member",
+              "variableType" : "AssetProperty",
+              "documentation" : "",
+              "simpleType" : "AssetProperty",
+              "variableSetterType" : "AssetProperty"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetProperty",
+              "variableName" : "member",
+              "variableType" : "AssetProperty",
+              "documentation" : "",
+              "simpleType" : "AssetProperty",
+              "variableSetterType" : "AssetProperty"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetProperty",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetProperty",
+          "templateImplType" : "java.util.ArrayList<AssetProperty>",
+          "templateType" : "java.util.List<AssetProperty>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetProperties",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.*/",
+        "setterMethodName" : "setAssetProperties",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetProperty>",
+          "variableName" : "assetProperties",
+          "variableType" : "java.util.List<AssetProperty>",
+          "documentation" : "",
+          "simpleType" : "List<AssetProperty>",
+          "variableSetterType" : "java.util.Collection<AssetProperty>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetProperties(java.util.Collection)} or {@link #withAssetProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetProperty>",
+          "variableName" : "assetProperties",
+          "variableType" : "java.util.List<AssetProperty>",
+          "documentation" : "<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>",
+          "simpleType" : "List<AssetProperty>",
+          "variableSetterType" : "java.util.Collection<AssetProperty>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetHierarchies",
+        "c2jShape" : "AssetHierarchies",
+        "deprecated" : false,
+        "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetHierarchies",
+        "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "getterMethodName" : "getAssetHierarchies",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetHierarchy>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetHierarchies",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetHierarchies",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetHierarchy",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetHierarchy",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetHierarchy",
+              "variableName" : "member",
+              "variableType" : "AssetHierarchy",
+              "documentation" : "",
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetHierarchy",
+              "variableName" : "member",
+              "variableType" : "AssetHierarchy",
+              "documentation" : "",
+              "simpleType" : "AssetHierarchy",
+              "variableSetterType" : "AssetHierarchy"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetHierarchy",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetHierarchy",
+          "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+          "templateType" : "java.util.List<AssetHierarchy>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetHierarchies",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+        "setterMethodName" : "setAssetHierarchies",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "assetHierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
+          "documentation" : "",
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetHierarchies(java.util.Collection)} or {@link #withAssetHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+          "variableName" : "assetHierarchies",
+          "variableType" : "java.util.List<AssetHierarchy>",
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+          "simpleType" : "List<AssetHierarchy>",
+          "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetCompositeModels",
+        "c2jShape" : "AssetCompositeModels",
+        "deprecated" : false,
+        "documentation" : "<p>The composite models for the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The composite models for the asset.</p>\n@param assetCompositeModels The composite models for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetCompositeModels",
+        "getterDocumentation" : "/**<p>The composite models for the asset.</p>\n@return The composite models for the asset.*/",
+        "getterMethodName" : "getAssetCompositeModels",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetCompositeModel>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetCompositeModels",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetCompositeModels",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetCompositeModel",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetCompositeModel",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetCompositeModel",
+              "variableSetterType" : "AssetCompositeModel"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetCompositeModel",
+              "variableSetterType" : "AssetCompositeModel"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetCompositeModel",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetCompositeModel",
+          "templateImplType" : "java.util.ArrayList<AssetCompositeModel>",
+          "templateType" : "java.util.List<AssetCompositeModel>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetCompositeModels",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The composite models for the asset.</p>\n@param assetCompositeModels The composite models for the asset.*/",
+        "setterMethodName" : "setAssetCompositeModels",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetCompositeModel>",
+          "variableName" : "assetCompositeModels",
+          "variableType" : "java.util.List<AssetCompositeModel>",
+          "documentation" : "",
+          "simpleType" : "List<AssetCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetCompositeModel>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The composite models for the asset.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetCompositeModels(java.util.Collection)} or {@link #withAssetCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetCompositeModels The composite models for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetCompositeModel>",
+          "variableName" : "assetCompositeModels",
+          "variableType" : "java.util.List<AssetCompositeModel>",
+          "documentation" : "<p>The composite models for the asset.</p>",
+          "simpleType" : "List<AssetCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetCompositeModel>"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetCreationDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetCreationDate",
+        "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+        "getterMethodName" : "getAssetCreationDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetCreationDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetCreationDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AssetCreationDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.*/",
+        "setterMethodName" : "setAssetCreationDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetCreationDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetLastUpdateDate",
+        "c2jShape" : "Timestamp",
+        "deprecated" : false,
+        "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetLastUpdateDate",
+        "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+        "getterMethodName" : "getAssetLastUpdateDate",
+        "getterModel" : {
+          "returnType" : "java.util.Date",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetLastUpdateDate",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetLastUpdateDate",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.util.Date",
+        "marshallingType" : "DATE",
+        "name" : "AssetLastUpdateDate",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.*/",
+        "setterMethodName" : "setAssetLastUpdateDate",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : "unixTimestamp",
+          "variableDeclarationType" : "java.util.Date",
+          "variableName" : "assetLastUpdateDate",
+          "variableType" : "java.util.Date",
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "simpleType" : "Date",
+          "variableSetterType" : "java.util.Date"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetStatus",
+        "c2jShape" : "AssetStatus",
+        "deprecated" : false,
+        "documentation" : "<p>The current status of the asset, which contains a state and any error message.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetStatus",
+        "getterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@return The current status of the asset, which contains a state and any error message.*/",
+        "getterMethodName" : "getAssetStatus",
+        "getterModel" : {
+          "returnType" : "AssetStatus",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetStatus",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetStatus",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "AssetStatus",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.*/",
+        "setterMethodName" : "setAssetStatus",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
+          "documentation" : "",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The current status of the asset, which contains a state and any error message.</p>\n@param assetStatus The current status of the asset, which contains a state and any error message.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "AssetStatus",
+          "variableName" : "assetStatus",
+          "variableType" : "AssetStatus",
+          "documentation" : "<p>The current status of the asset, which contains a state and any error message.</p>",
+          "simpleType" : "AssetStatus",
+          "variableSetterType" : "AssetStatus"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetArn" : {
+          "c2jName" : "assetArn",
+          "c2jShape" : "ARN",
+          "deprecated" : false,
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "getterMethodName" : "getAssetArn",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetArn",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetArn",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetArn",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>*/",
+          "setterMethodName" : "setAssetArn",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetArn",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>\n@param assetArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetArn",
+            "variableType" : "String",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p> <p> <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code> </p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetCompositeModels" : {
+          "c2jName" : "assetCompositeModels",
+          "c2jShape" : "AssetCompositeModels",
+          "deprecated" : false,
+          "documentation" : "<p>The composite models for the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The composite models for the asset.</p>\n@param assetCompositeModels The composite models for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetCompositeModels",
+          "getterDocumentation" : "/**<p>The composite models for the asset.</p>\n@return The composite models for the asset.*/",
+          "getterMethodName" : "getAssetCompositeModels",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetCompositeModel>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetCompositeModels",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetCompositeModels",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetCompositeModel",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetCompositeModel",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetCompositeModel",
+                "variableSetterType" : "AssetCompositeModel"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetCompositeModel",
+                "variableSetterType" : "AssetCompositeModel"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetCompositeModel",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetCompositeModel",
+            "templateImplType" : "java.util.ArrayList<AssetCompositeModel>",
+            "templateType" : "java.util.List<AssetCompositeModel>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetCompositeModels",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The composite models for the asset.</p>\n@param assetCompositeModels The composite models for the asset.*/",
+          "setterMethodName" : "setAssetCompositeModels",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetCompositeModel>",
+            "variableName" : "assetCompositeModels",
+            "variableType" : "java.util.List<AssetCompositeModel>",
+            "documentation" : "",
+            "simpleType" : "List<AssetCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetCompositeModel>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The composite models for the asset.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetCompositeModels(java.util.Collection)} or {@link #withAssetCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetCompositeModels The composite models for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetCompositeModel>",
+            "variableName" : "assetCompositeModels",
+            "variableType" : "java.util.List<AssetCompositeModel>",
+            "documentation" : "<p>The composite models for the asset.</p>",
+            "simpleType" : "List<AssetCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetCompositeModel>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetCreationDate" : {
+          "c2jName" : "assetCreationDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetCreationDate",
+          "getterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@return The date the asset was created, in Unix epoch time.*/",
+          "getterMethodName" : "getAssetCreationDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetCreationDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetCreationDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.util.Date",
+          "marshallingType" : "DATE",
+          "name" : "AssetCreationDate",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.*/",
+          "setterMethodName" : "setAssetCreationDate",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The date the asset was created, in Unix epoch time.</p>\n@param assetCreationDate The date the asset was created, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : "unixTimestamp",
+            "variableDeclarationType" : "java.util.Date",
+            "variableName" : "assetCreationDate",
+            "variableType" : "java.util.Date",
+            "documentation" : "<p>The date the asset was created, in Unix epoch time.</p>",
+            "simpleType" : "Date",
+            "variableSetterType" : "java.util.Date"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetHierarchies" : {
+          "c2jName" : "assetHierarchies",
+          "c2jShape" : "AssetHierarchies",
+          "deprecated" : false,
+          "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetHierarchies",
+          "getterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@return A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "getterMethodName" : "getAssetHierarchies",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetHierarchy>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetHierarchies",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetHierarchies",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetHierarchy",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetHierarchy",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetHierarchy",
+                "variableName" : "member",
+                "variableType" : "AssetHierarchy",
+                "documentation" : "",
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetHierarchy",
+                "variableName" : "member",
+                "variableType" : "AssetHierarchy",
+                "documentation" : "",
+                "simpleType" : "AssetHierarchy",
+                "variableSetterType" : "AssetHierarchy"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetHierarchy",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetHierarchy",
+            "templateImplType" : "java.util.ArrayList<AssetHierarchy>",
+            "templateType" : "java.util.List<AssetHierarchy>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetHierarchies",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.*/",
+          "setterMethodName" : "setAssetHierarchies",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "assetHierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
+            "documentation" : "",
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetHierarchies(java.util.Collection)} or {@link #withAssetHierarchies(java.util.Collection)} if you want to override the existing values.</p>\n@param assetHierarchies A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetHierarchy>",
+            "variableName" : "assetHierarchies",
+            "variableType" : "java.util.List<AssetHierarchy>",
+            "documentation" : "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
+            "simpleType" : "List<AssetHierarchy>",
+            "variableSetterType" : "java.util.Collection<AssetHierarchy>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "AssetLastUpdateDate" : {
+          "c2jName" : "assetLastUpdateDate",
+          "c2jShape" : "Timestamp",
+          "deprecated" : false,
+          "documentation" : "<p>The date the asset was last updated, in Unix epoch time.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@param assetLastUpdateDate The date the asset was last updated, in Unix epoch time.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetLastUpdateDate",
+          "getterDocumentation" : "/**<p>The date the asset was last updated, in Unix epoch time.</p>\n@return The date the asset was last updated, in Unix epoch time.*/",
+          "getterMethodName" : "getAssetLastUpdateDate",
+          "getterModel" : {
+            "returnType" : "java.util.Date",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetLastUpdateDate",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetLastUpdateDate",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
           "list" : false,
@@ -39709,12 +44177,12 @@
           "c2jName" : "assetProperties",
           "c2jShape" : "AssetProperties",
           "deprecated" : false,
-          "documentation" : "<p>The list of asset properties for the asset.</p>",
+          "documentation" : "<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@param assetProperties The list of asset properties for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAssetProperties",
-          "getterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@return The list of asset properties for the asset.*/",
+          "getterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@return The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.*/",
           "getterMethodName" : "getAssetProperties",
           "getterModel" : {
             "returnType" : "java.util.List<AssetProperty>",
@@ -39832,7 +44300,7 @@
           "marshallingType" : "LIST",
           "name" : "AssetProperties",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n@param assetProperties The list of asset properties for the asset.*/",
+          "setterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.*/",
           "setterMethodName" : "setAssetProperties",
           "setterModel" : {
             "timestampFormat" : null,
@@ -39847,13 +44315,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetProperties(java.util.Collection)} or {@link #withAssetProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetProperties The list of asset properties for the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetProperties(java.util.Collection)} or {@link #withAssetProperties(java.util.Collection)} if you want to override the existing values.</p>\n@param assetProperties The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.List<AssetProperty>",
             "variableName" : "assetProperties",
             "variableType" : "java.util.List<AssetProperty>",
-            "documentation" : "<p>The list of asset properties for the asset.</p>",
+            "documentation" : "<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>",
             "simpleType" : "List<AssetProperty>",
             "variableSetterType" : "java.util.Collection<AssetProperty>"
           },
@@ -44898,12 +49366,12 @@
         "c2jName" : "portalStartUrl",
         "c2jShape" : "Url",
         "deprecated" : false,
-        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withPortalStartUrl",
-        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
         "getterMethodName" : "getPortalStartUrl",
         "getterModel" : {
           "returnType" : "String",
@@ -44937,7 +49405,7 @@
         "marshallingType" : "STRING",
         "name" : "PortalStartUrl",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
         "setterMethodName" : "setPortalStartUrl",
         "setterModel" : {
           "timestampFormat" : null,
@@ -44952,13 +49420,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "portalStartUrl",
           "variableType" : "String",
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -46152,12 +50620,12 @@
           "c2jName" : "portalStartUrl",
           "c2jShape" : "Url",
           "deprecated" : false,
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withPortalStartUrl",
-          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
           "getterMethodName" : "getPortalStartUrl",
           "getterModel" : {
             "returnType" : "String",
@@ -46191,7 +50659,7 @@
           "marshallingType" : "STRING",
           "name" : "PortalStartUrl",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
           "setterMethodName" : "setPortalStartUrl",
           "setterModel" : {
             "timestampFormat" : null,
@@ -46206,13 +50674,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param portalStartUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "portalStartUrl",
             "variableType" : "String",
-            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -54637,48 +59105,517 @@
           },
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "List",
-          "marshallingType" : "LIST",
-          "name" : "AssetPropertyValueHistory",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetPropertyValueHistory",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The asset property's value history.</p>\n@param assetPropertyValueHistory The asset property's value history.*/",
+          "setterMethodName" : "setAssetPropertyValueHistory",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetPropertyValue>",
+            "variableName" : "assetPropertyValueHistory",
+            "variableType" : "java.util.List<AssetPropertyValue>",
+            "documentation" : "",
+            "simpleType" : "List<AssetPropertyValue>",
+            "variableSetterType" : "java.util.Collection<AssetPropertyValue>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The asset property's value history.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetPropertyValueHistory(java.util.Collection)} or {@link #withAssetPropertyValueHistory(java.util.Collection)} if you want to override the existing values.</p>\n@param assetPropertyValueHistory The asset property's value history.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetPropertyValue>",
+            "variableName" : "assetPropertyValueHistory",
+            "variableType" : "java.util.List<AssetPropertyValue>",
+            "documentation" : "<p>The asset property's value history.</p>",
+            "simpleType" : "List<AssetPropertyValue>",
+            "variableSetterType" : "java.util.Collection<AssetPropertyValue>"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "NextToken" : {
+          "c2jName" : "nextToken",
+          "c2jShape" : "NextToken",
+          "deprecated" : false,
+          "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withNextToken",
+          "getterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@return The token for the next set of results, or null if there are no additional results.*/",
+          "getterMethodName" : "getNextToken",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "nextToken",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "nextToken",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "NextToken",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.*/",
+          "setterMethodName" : "setNextToken",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "nextToken",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "nextToken",
+            "variableType" : "String",
+            "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "assetPropertyValueHistory" ],
+      "shapeName" : "GetAssetPropertyValueHistoryResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "GetAssetPropertyValueHistoryResult",
+        "variableName" : "getAssetPropertyValueHistoryResult",
+        "variableType" : "GetAssetPropertyValueHistoryResult",
+        "documentation" : null,
+        "simpleType" : "GetAssetPropertyValueHistoryResult",
+        "variableSetterType" : "GetAssetPropertyValueHistoryResult"
+      },
+      "wrapper" : false
+    },
+    "GetAssetPropertyValueRequest" : {
+      "c2jName" : "GetAssetPropertyValueRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.GetAssetPropertyValueRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "GetAssetPropertyValue",
+        "locationName" : null,
+        "requestUri" : "/properties/latest",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "assetId",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "propertyId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset property.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPropertyId",
+        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+        "getterMethodName" : "getPropertyId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "propertyId",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "propertyId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PropertyId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
+        "setterMethodName" : "setPropertyId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset property.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "propertyAlias",
+        "c2jShape" : "AssetPropertyAlias",
+        "deprecated" : false,
+        "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPropertyAlias",
+        "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "getterMethodName" : "getPropertyAlias",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "propertyAlias",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "propertyAlias",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "PropertyAlias",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+        "setterMethodName" : "setPropertyAlias",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyAlias",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "propertyAlias",
+          "variableType" : "String",
+          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "assetId",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "PropertyAlias" : {
+          "c2jName" : "propertyAlias",
+          "c2jShape" : "AssetPropertyAlias",
+          "deprecated" : false,
+          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPropertyAlias",
+          "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "getterMethodName" : "getPropertyAlias",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "propertyAlias",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "propertyAlias",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "PropertyAlias",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The asset property's value history.</p>\n@param assetPropertyValueHistory The asset property's value history.*/",
-          "setterMethodName" : "setAssetPropertyValueHistory",
+          "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
+          "setterMethodName" : "setPropertyAlias",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetPropertyValue>",
-            "variableName" : "assetPropertyValueHistory",
-            "variableType" : "java.util.List<AssetPropertyValue>",
+            "variableDeclarationType" : "String",
+            "variableName" : "propertyAlias",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "List<AssetPropertyValue>",
-            "variableSetterType" : "java.util.Collection<AssetPropertyValue>"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The asset property's value history.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetPropertyValueHistory(java.util.Collection)} or {@link #withAssetPropertyValueHistory(java.util.Collection)} if you want to override the existing values.</p>\n@param assetPropertyValueHistory The asset property's value history.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetPropertyValue>",
-            "variableName" : "assetPropertyValueHistory",
-            "variableType" : "java.util.List<AssetPropertyValue>",
-            "documentation" : "<p>The asset property's value history.</p>",
-            "simpleType" : "List<AssetPropertyValue>",
-            "variableSetterType" : "java.util.Collection<AssetPropertyValue>"
+            "variableDeclarationType" : "String",
+            "variableName" : "propertyAlias",
+            "variableType" : "String",
+            "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "NextToken" : {
-          "c2jName" : "nextToken",
-          "c2jShape" : "NextToken",
+        "PropertyId" : {
+          "c2jName" : "propertyId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
+          "documentation" : "<p>The ID of the asset property.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withNextToken",
-          "getterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@return The token for the next set of results, or null if there are no additional results.*/",
-          "getterMethodName" : "getNextToken",
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPropertyId",
+          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
+          "getterMethodName" : "getPropertyId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -54691,13 +59628,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "nextToken",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "propertyId",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "nextToken",
+            "unmarshallLocationName" : "propertyId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -54709,14 +59646,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "NextToken",
+          "name" : "PropertyId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.*/",
-          "setterMethodName" : "setNextToken",
+          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
+          "setterMethodName" : "setPropertyId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "nextToken",
+            "variableName" : "propertyId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -54726,43 +59663,40 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "nextToken",
+            "variableName" : "propertyId",
             "variableType" : "String",
-            "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
+            "documentation" : "<p>The ID of the asset property.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetPropertyValueHistory" ],
-      "shapeName" : "GetAssetPropertyValueHistoryResult",
+      "required" : null,
+      "shapeName" : "GetAssetPropertyValueRequest",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "GetAssetPropertyValueHistoryResult",
-        "variableName" : "getAssetPropertyValueHistoryResult",
-        "variableType" : "GetAssetPropertyValueHistoryResult",
+        "variableDeclarationType" : "GetAssetPropertyValueRequest",
+        "variableName" : "getAssetPropertyValueRequest",
+        "variableType" : "GetAssetPropertyValueRequest",
         "documentation" : null,
-        "simpleType" : "GetAssetPropertyValueHistoryResult",
-        "variableSetterType" : "GetAssetPropertyValueHistoryResult"
+        "simpleType" : "GetAssetPropertyValueRequest",
+        "variableSetterType" : "GetAssetPropertyValueRequest"
       },
       "wrapper" : false
     },
-    "GetAssetPropertyValueRequest" : {
-      "c2jName" : "GetAssetPropertyValueRequest",
+    "GetAssetPropertyValueResult" : {
+      "c2jName" : "GetAssetPropertyValueResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -54774,102 +59708,26 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.GetAssetPropertyValueRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.GetAssetPropertyValueResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "GetAssetPropertyValue",
-        "locationName" : null,
-        "requestUri" : "/properties/latest",
-        "target" : null,
-        "verb" : "GET",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetId",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the asset.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetId",
-        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-        "getterMethodName" : "getAssetId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "assetId",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "assetId",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "AssetId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-        "setterMethodName" : "setAssetId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "assetId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "propertyId",
-        "c2jShape" : "ID",
+        "c2jName" : "propertyValue",
+        "c2jShape" : "AssetPropertyValue",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the asset property.</p>",
+        "documentation" : "<p>The current asset property value.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPropertyId",
-        "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
-        "getterMethodName" : "getPropertyId",
+        "fluentSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withPropertyValue",
+        "getterDocumentation" : "/**<p>The current asset property value.</p>\n@return The current asset property value.*/",
+        "getterMethodName" : "getPropertyValue",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "AssetPropertyValue",
           "documentation" : null
         },
         "http" : {
@@ -54880,13 +59738,13 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "propertyId",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "propertyValue",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "propertyId",
+          "unmarshallLocationName" : "propertyValue",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -54896,47 +59754,162 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "PropertyId",
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "PropertyValue",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
-        "setterMethodName" : "setPropertyId",
+        "setterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.*/",
+        "setterMethodName" : "setPropertyValue",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "propertyId",
-          "variableType" : "String",
+          "variableDeclarationType" : "AssetPropertyValue",
+          "variableName" : "propertyValue",
+          "variableType" : "AssetPropertyValue",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "AssetPropertyValue",
+          "variableSetterType" : "AssetPropertyValue"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "propertyId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the asset property.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "AssetPropertyValue",
+          "variableName" : "propertyValue",
+          "variableType" : "AssetPropertyValue",
+          "documentation" : "<p>The current asset property value.</p>",
+          "simpleType" : "AssetPropertyValue",
+          "variableSetterType" : "AssetPropertyValue"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "propertyAlias",
-        "c2jShape" : "AssetPropertyAlias",
+      } ],
+      "membersAsMap" : {
+        "PropertyValue" : {
+          "c2jName" : "propertyValue",
+          "c2jShape" : "AssetPropertyValue",
+          "deprecated" : false,
+          "documentation" : "<p>The current asset property value.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withPropertyValue",
+          "getterDocumentation" : "/**<p>The current asset property value.</p>\n@return The current asset property value.*/",
+          "getterMethodName" : "getPropertyValue",
+          "getterModel" : {
+            "returnType" : "AssetPropertyValue",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "propertyValue",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "propertyValue",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "PropertyValue",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.*/",
+          "setterMethodName" : "setPropertyValue",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetPropertyValue",
+            "variableName" : "propertyValue",
+            "variableType" : "AssetPropertyValue",
+            "documentation" : "",
+            "simpleType" : "AssetPropertyValue",
+            "variableSetterType" : "AssetPropertyValue"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "AssetPropertyValue",
+            "variableName" : "propertyValue",
+            "variableType" : "AssetPropertyValue",
+            "documentation" : "<p>The current asset property value.</p>",
+            "simpleType" : "AssetPropertyValue",
+            "variableSetterType" : "AssetPropertyValue"
+          },
+          "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "GetAssetPropertyValueResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "GetAssetPropertyValueResult",
+        "variableName" : "getAssetPropertyValueResult",
+        "variableType" : "GetAssetPropertyValueResult",
+        "documentation" : null,
+        "simpleType" : "GetAssetPropertyValueResult",
+        "variableSetterType" : "GetAssetPropertyValueResult"
+      },
+      "wrapper" : false
+    },
+    "Greengrass" : {
+      "c2jName" : "Greengrass",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains details for a gateway that runs on AWS IoT Greengrass. To create a gateway that runs on AWS IoT Greengrass, you must add the IoT SiteWise connector to a Greengrass group and deploy it. Your Greengrass group must also have permissions to upload data to AWS IoT SiteWise. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateway-connector.html\">Ingesting data using a gateway</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Greengrass",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "groupArn",
+        "c2jShape" : "ARN",
         "deprecated" : false,
-        "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPropertyAlias",
-        "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "getterMethodName" : "getPropertyAlias",
+        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGroupArn",
+        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
+        "getterMethodName" : "getGroupArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -54949,13 +59922,13 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "propertyAlias",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "groupArn",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "propertyAlias",
+          "unmarshallLocationName" : "groupArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -54967,14 +59940,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "PropertyAlias",
+        "name" : "GroupArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-        "setterMethodName" : "setPropertyAlias",
+        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
+        "setterMethodName" : "setGroupArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "propertyAlias",
+          "variableName" : "groupArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -54984,30 +59957,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "propertyAlias",
+          "variableName" : "groupArn",
           "variableType" : "String",
-          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetId" : {
-          "c2jName" : "assetId",
-          "c2jShape" : "ID",
+        "GroupArn" : {
+          "c2jName" : "groupArn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset.</p>",
+          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetId",
-          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
-          "getterMethodName" : "getAssetId",
+          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGroupArn",
+          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
+          "getterMethodName" : "getGroupArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -55020,13 +59993,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "assetId",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "groupArn",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetId",
+            "unmarshallLocationName" : "groupArn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55038,14 +60011,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "AssetId",
+          "name" : "GroupArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
-          "setterMethodName" : "setAssetId",
+          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
+          "setterMethodName" : "setGroupArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "groupArn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -55055,29 +60028,143 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "assetId",
+            "variableName" : "groupArn",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset.</p>",
+            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "groupArn" ],
+      "shapeName" : "Greengrass",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "Greengrass",
+        "variableName" : "greengrass",
+        "variableType" : "Greengrass",
+        "documentation" : null,
+        "simpleType" : "Greengrass",
+        "variableSetterType" : "Greengrass"
+      },
+      "wrapper" : false
+    },
+    "GroupIdentity" : {
+      "c2jName" : "GroupIdentity",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information for a group identity in an access policy.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.GroupIdentity",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "id",
+        "c2jShape" : "IdentityId",
+        "deprecated" : false,
+        "documentation" : "<p>The AWS SSO ID of the group.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@return The AWS SSO ID of the group.*/",
+        "getterMethodName" : "getId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "id",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "id",
+          "uri" : false
         },
-        "PropertyAlias" : {
-          "c2jName" : "propertyAlias",
-          "c2jShape" : "AssetPropertyAlias",
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Id",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.*/",
+        "setterMethodName" : "setId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "id",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "id",
+          "variableType" : "String",
+          "documentation" : "<p>The AWS SSO ID of the group.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "IdentityId",
           "deprecated" : false,
-          "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+          "documentation" : "<p>The AWS SSO ID of the group.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPropertyAlias",
-          "getterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@return The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "getterMethodName" : "getPropertyAlias",
+          "fluentSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@return The AWS SSO ID of the group.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -55090,13 +60177,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "propertyAlias",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "id",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "propertyAlias",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55108,14 +60195,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PropertyAlias",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.*/",
-          "setterMethodName" : "setPropertyAlias",
+          "setterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyAlias",
+            "variableName" : "id",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -55125,29 +60212,143 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n@param propertyAlias The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyAlias",
+            "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The property alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+            "documentation" : "<p>The AWS SSO ID of the group.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "id" ],
+      "shapeName" : "GroupIdentity",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "GroupIdentity",
+        "variableName" : "groupIdentity",
+        "variableType" : "GroupIdentity",
+        "documentation" : null,
+        "simpleType" : "GroupIdentity",
+        "variableSetterType" : "GroupIdentity"
+      },
+      "wrapper" : false
+    },
+    "IAMUserIdentity" : {
+      "c2jName" : "IAMUserIdentity",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains information about an AWS Identity and Access Management (IAM) user.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.IAMUserIdentity",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ {
+        "c2jName" : "arn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withArn",
+        "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
+        "getterMethodName" : "getArn",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "PropertyId" : {
-          "c2jName" : "propertyId",
-          "c2jShape" : "ID",
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "arn",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "arn",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Arn",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
+        "setterMethodName" : "setArn",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "arn",
+          "variableType" : "String",
+          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Arn" : {
+          "c2jName" : "arn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the asset property.</p>",
+          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPropertyId",
-          "getterDocumentation" : "/**<p>The ID of the asset property.</p>\n@return The ID of the asset property.*/",
-          "getterMethodName" : "getPropertyId",
+          "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withArn",
+          "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
+          "getterMethodName" : "getArn",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -55160,13 +60361,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "propertyId",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "arn",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "propertyId",
+            "unmarshallLocationName" : "arn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55178,14 +60379,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "PropertyId",
+          "name" : "Arn",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.*/",
-          "setterMethodName" : "setPropertyId",
+          "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
+          "setterMethodName" : "setArn",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyId",
+            "variableName" : "arn",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -55195,40 +60396,43 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the asset property.</p>\n@param propertyId The ID of the asset property.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "propertyId",
+            "variableName" : "arn",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the asset property.</p>",
+            "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
       },
-      "packageName" : "com.amazonaws.services.iotsitewise.request",
+      "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "GetAssetPropertyValueRequest",
+      "required" : [ "arn" ],
+      "shapeName" : "IAMUserIdentity",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "GetAssetPropertyValueRequest",
-        "variableName" : "getAssetPropertyValueRequest",
-        "variableType" : "GetAssetPropertyValueRequest",
+        "variableDeclarationType" : "IAMUserIdentity",
+        "variableName" : "iAMUserIdentity",
+        "variableType" : "IAMUserIdentity",
         "documentation" : null,
-        "simpleType" : "GetAssetPropertyValueRequest",
-        "variableSetterType" : "GetAssetPropertyValueRequest"
+        "simpleType" : "IAMUserIdentity",
+        "variableSetterType" : "IAMUserIdentity"
       },
       "wrapper" : false
     },
-    "GetAssetPropertyValueResult" : {
-      "c2jName" : "GetAssetPropertyValueResponse",
+    "Identity" : {
+      "c2jName" : "Identity",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -55236,11 +60440,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>Contains an identity that can access an AWS IoT SiteWise Monitor resource.</p> <note> <p>Currently, you can't use AWS APIs to retrieve AWS SSO identity IDs. You can find the AWS SSO identity IDs in the URL of user and group pages in the <a href=\"https://console.aws.amazon.com/singlesignon\">AWS SSO console</a>.</p> </note>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.GetAssetPropertyValueResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Identity",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -55248,18 +60452,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "propertyValue",
-        "c2jShape" : "AssetPropertyValue",
+        "c2jName" : "user",
+        "c2jShape" : "UserIdentity",
         "deprecated" : false,
-        "documentation" : "<p>The current asset property value.</p>",
+        "documentation" : "<p>An AWS SSO user identity.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withPropertyValue",
-        "getterDocumentation" : "/**<p>The current asset property value.</p>\n@return The current asset property value.*/",
-        "getterMethodName" : "getPropertyValue",
+        "fluentSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withUser",
+        "getterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@return An AWS SSO user identity.*/",
+        "getterMethodName" : "getUser",
         "getterModel" : {
-          "returnType" : "AssetPropertyValue",
+          "returnType" : "UserIdentity",
           "documentation" : null
         },
         "http" : {
@@ -55272,11 +60476,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "propertyValue",
+          "marshallLocationName" : "user",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "propertyValue",
+          "unmarshallLocationName" : "user",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -55288,49 +60492,257 @@
         "mapModel" : null,
         "marshallingTargetClass" : "StructuredPojo",
         "marshallingType" : "STRUCTURED",
-        "name" : "PropertyValue",
+        "name" : "User",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.*/",
-        "setterMethodName" : "setPropertyValue",
+        "setterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.*/",
+        "setterMethodName" : "setUser",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetPropertyValue",
-          "variableName" : "propertyValue",
-          "variableType" : "AssetPropertyValue",
+          "variableDeclarationType" : "UserIdentity",
+          "variableName" : "user",
+          "variableType" : "UserIdentity",
           "documentation" : "",
-          "simpleType" : "AssetPropertyValue",
-          "variableSetterType" : "AssetPropertyValue"
+          "simpleType" : "UserIdentity",
+          "variableSetterType" : "UserIdentity"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "AssetPropertyValue",
-          "variableName" : "propertyValue",
-          "variableType" : "AssetPropertyValue",
-          "documentation" : "<p>The current asset property value.</p>",
-          "simpleType" : "AssetPropertyValue",
-          "variableSetterType" : "AssetPropertyValue"
+          "variableDeclarationType" : "UserIdentity",
+          "variableName" : "user",
+          "variableType" : "UserIdentity",
+          "documentation" : "<p>An AWS SSO user identity.</p>",
+          "simpleType" : "UserIdentity",
+          "variableSetterType" : "UserIdentity"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "group",
+        "c2jShape" : "GroupIdentity",
+        "deprecated" : false,
+        "documentation" : "<p>An AWS SSO group identity.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withGroup",
+        "getterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@return An AWS SSO group identity.*/",
+        "getterMethodName" : "getGroup",
+        "getterModel" : {
+          "returnType" : "GroupIdentity",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "group",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "group",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "Group",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.*/",
+        "setterMethodName" : "setGroup",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "GroupIdentity",
+          "variableName" : "group",
+          "variableType" : "GroupIdentity",
+          "documentation" : "",
+          "simpleType" : "GroupIdentity",
+          "variableSetterType" : "GroupIdentity"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "GroupIdentity",
+          "variableName" : "group",
+          "variableType" : "GroupIdentity",
+          "documentation" : "<p>An AWS SSO group identity.</p>",
+          "simpleType" : "GroupIdentity",
+          "variableSetterType" : "GroupIdentity"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "iamUser",
+        "c2jShape" : "IAMUserIdentity",
+        "deprecated" : false,
+        "documentation" : "<p>An IAM user identity.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withIamUser",
+        "getterDocumentation" : "/**<p>An IAM user identity.</p>\n@return An IAM user identity.*/",
+        "getterMethodName" : "getIamUser",
+        "getterModel" : {
+          "returnType" : "IAMUserIdentity",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "iamUser",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "iamUser",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "IamUser",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.*/",
+        "setterMethodName" : "setIamUser",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "IAMUserIdentity",
+          "variableName" : "iamUser",
+          "variableType" : "IAMUserIdentity",
+          "documentation" : "",
+          "simpleType" : "IAMUserIdentity",
+          "variableSetterType" : "IAMUserIdentity"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "IAMUserIdentity",
+          "variableName" : "iamUser",
+          "variableType" : "IAMUserIdentity",
+          "documentation" : "<p>An IAM user identity.</p>",
+          "simpleType" : "IAMUserIdentity",
+          "variableSetterType" : "IAMUserIdentity"
+        },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
+        "Group" : {
+          "c2jName" : "group",
+          "c2jShape" : "GroupIdentity",
+          "deprecated" : false,
+          "documentation" : "<p>An AWS SSO group identity.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withGroup",
+          "getterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@return An AWS SSO group identity.*/",
+          "getterMethodName" : "getGroup",
+          "getterModel" : {
+            "returnType" : "GroupIdentity",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "group",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "group",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "Group",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.*/",
+          "setterMethodName" : "setGroup",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "GroupIdentity",
+            "variableName" : "group",
+            "variableType" : "GroupIdentity",
+            "documentation" : "",
+            "simpleType" : "GroupIdentity",
+            "variableSetterType" : "GroupIdentity"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "GroupIdentity",
+            "variableName" : "group",
+            "variableType" : "GroupIdentity",
+            "documentation" : "<p>An AWS SSO group identity.</p>",
+            "simpleType" : "GroupIdentity",
+            "variableSetterType" : "GroupIdentity"
+          },
+          "xmlNameSpaceUri" : null
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "PropertyValue" : {
-          "c2jName" : "propertyValue",
-          "c2jShape" : "AssetPropertyValue",
+        "IamUser" : {
+          "c2jName" : "iamUser",
+          "c2jShape" : "IAMUserIdentity",
           "deprecated" : false,
-          "documentation" : "<p>The current asset property value.</p>",
+          "documentation" : "<p>An IAM user identity.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withPropertyValue",
-          "getterDocumentation" : "/**<p>The current asset property value.</p>\n@return The current asset property value.*/",
-          "getterMethodName" : "getPropertyValue",
+          "fluentSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withIamUser",
+          "getterDocumentation" : "/**<p>An IAM user identity.</p>\n@return An IAM user identity.*/",
+          "getterMethodName" : "getIamUser",
           "getterModel" : {
-            "returnType" : "AssetPropertyValue",
+            "returnType" : "IAMUserIdentity",
             "documentation" : null
           },
           "http" : {
@@ -55343,11 +60755,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "propertyValue",
+            "marshallLocationName" : "iamUser",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "propertyValue",
+            "unmarshallLocationName" : "iamUser",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55359,162 +60771,48 @@
           "mapModel" : null,
           "marshallingTargetClass" : "StructuredPojo",
           "marshallingType" : "STRUCTURED",
-          "name" : "PropertyValue",
+          "name" : "IamUser",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.*/",
-          "setterMethodName" : "setPropertyValue",
+          "setterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.*/",
+          "setterMethodName" : "setIamUser",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetPropertyValue",
-            "variableName" : "propertyValue",
-            "variableType" : "AssetPropertyValue",
+            "variableDeclarationType" : "IAMUserIdentity",
+            "variableName" : "iamUser",
+            "variableType" : "IAMUserIdentity",
             "documentation" : "",
-            "simpleType" : "AssetPropertyValue",
-            "variableSetterType" : "AssetPropertyValue"
+            "simpleType" : "IAMUserIdentity",
+            "variableSetterType" : "IAMUserIdentity"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The current asset property value.</p>\n@param propertyValue The current asset property value.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "AssetPropertyValue",
-            "variableName" : "propertyValue",
-            "variableType" : "AssetPropertyValue",
-            "documentation" : "<p>The current asset property value.</p>",
-            "simpleType" : "AssetPropertyValue",
-            "variableSetterType" : "AssetPropertyValue"
+            "variableDeclarationType" : "IAMUserIdentity",
+            "variableName" : "iamUser",
+            "variableType" : "IAMUserIdentity",
+            "documentation" : "<p>An IAM user identity.</p>",
+            "simpleType" : "IAMUserIdentity",
+            "variableSetterType" : "IAMUserIdentity"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.response",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "GetAssetPropertyValueResult",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "GetAssetPropertyValueResult",
-        "variableName" : "getAssetPropertyValueResult",
-        "variableType" : "GetAssetPropertyValueResult",
-        "documentation" : null,
-        "simpleType" : "GetAssetPropertyValueResult",
-        "variableSetterType" : "GetAssetPropertyValueResult"
-      },
-      "wrapper" : false
-    },
-    "Greengrass" : {
-      "c2jName" : "Greengrass",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>Contains details for a gateway that runs on AWS IoT Greengrass. To create a gateway that runs on AWS IoT Greengrass, you must add the IoT SiteWise connector to a Greengrass group and deploy it. Your Greengrass group must also have permissions to upload data to AWS IoT SiteWise. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateway-connector.html\">Ingesting data using a gateway</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Greengrass",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "groupArn",
-        "c2jShape" : "ARN",
-        "deprecated" : false,
-        "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGroupArn",
-        "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
-        "getterMethodName" : "getGroupArn",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "groupArn",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "groupArn",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "GroupArn",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
-        "setterMethodName" : "setGroupArn",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "groupArn",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "groupArn",
-          "variableType" : "String",
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "GroupArn" : {
-          "c2jName" : "groupArn",
-          "c2jShape" : "ARN",
+        "User" : {
+          "c2jName" : "user",
+          "c2jShape" : "UserIdentity",
           "deprecated" : false,
-          "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
+          "documentation" : "<p>An AWS SSO user identity.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGroupArn",
-          "getterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@return The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
-          "getterMethodName" : "getGroupArn",
+          "fluentSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withUser",
+          "getterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@return An AWS SSO user identity.*/",
+          "getterMethodName" : "getUser",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "UserIdentity",
             "documentation" : null
           },
           "http" : {
@@ -55527,11 +60825,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "groupArn",
+            "marshallLocationName" : "user",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "groupArn",
+            "unmarshallLocationName" : "user",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55541,34 +60839,34 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "GroupArn",
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "User",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.*/",
-          "setterMethodName" : "setGroupArn",
+          "setterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.*/",
+          "setterMethodName" : "setUser",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "groupArn",
-            "variableType" : "String",
+            "variableDeclarationType" : "UserIdentity",
+            "variableName" : "user",
+            "variableType" : "UserIdentity",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "UserIdentity",
+            "variableSetterType" : "UserIdentity"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>\n@param groupArn The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "groupArn",
-            "variableType" : "String",
-            "documentation" : "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the <i>AWS IoT Greengrass API Reference</i>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "UserIdentity",
+            "variableName" : "user",
+            "variableType" : "UserIdentity",
+            "documentation" : "<p>An AWS SSO user identity.</p>",
+            "simpleType" : "UserIdentity",
+            "variableSetterType" : "UserIdentity"
           },
           "xmlNameSpaceUri" : null
         }
@@ -55576,8 +60874,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "groupArn" ],
-      "shapeName" : "Greengrass",
+      "required" : null,
+      "shapeName" : "Identity",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -55586,17 +60884,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "Greengrass",
-        "variableName" : "greengrass",
-        "variableType" : "Greengrass",
+        "variableDeclarationType" : "Identity",
+        "variableName" : "identity",
+        "variableType" : "Identity",
         "documentation" : null,
-        "simpleType" : "Greengrass",
-        "variableSetterType" : "Greengrass"
+        "simpleType" : "Identity",
+        "variableSetterType" : "Identity"
       },
       "wrapper" : false
     },
-    "GroupIdentity" : {
-      "c2jName" : "GroupIdentity",
+    "IdentityType" : {
+      "c2jName" : "IdentityType",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -55604,11 +60902,64 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains information for a group identity in an access policy.</p>",
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "USER",
+        "value" : "USER"
+      }, {
+        "name" : "GROUP",
+        "value" : "GROUP"
+      }, {
+        "name" : "IAM",
+        "value" : "IAM"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.IdentityType",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "IdentityType",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "IdentityType",
+        "variableName" : "identityType",
+        "variableType" : "IdentityType",
+        "documentation" : null,
+        "simpleType" : "IdentityType",
+        "variableSetterType" : "IdentityType"
+      },
+      "wrapper" : false
+    },
+    "Image" : {
+      "c2jName" : "Image",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains an image that is one of the following:</p> <ul> <li> <p>An image file. Choose this option to upload a new image.</p> </li> <li> <p>The ID of an existing image. Choose this option to keep an existing image.</p> </li> </ul>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.GroupIdentity",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Image",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -55617,14 +60968,14 @@
       "marshaller" : null,
       "members" : [ {
         "c2jName" : "id",
-        "c2jShape" : "IdentityId",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The AWS SSO ID of the group.</p>",
+        "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@return The AWS SSO ID of the group.*/",
+        "getterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@return The ID of an existing image. Specify this parameter to keep an existing image.*/",
         "getterMethodName" : "getId",
         "getterModel" : {
           "returnType" : "String",
@@ -55658,7 +61009,7 @@
         "marshallingType" : "STRING",
         "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.*/",
+        "setterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.*/",
         "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
@@ -55673,29 +61024,168 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "id",
           "variableType" : "String",
-          "documentation" : "<p>The AWS SSO ID of the group.</p>",
+          "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "file",
+        "c2jShape" : "ImageFile",
+        "deprecated" : false,
+        "documentation" : "",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withFile",
+        "getterDocumentation" : "/**\n@return */",
+        "getterMethodName" : "getFile",
+        "getterModel" : {
+          "returnType" : "ImageFile",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "file",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "file",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "StructuredPojo",
+        "marshallingType" : "STRUCTURED",
+        "name" : "File",
+        "sensitive" : false,
+        "setterDocumentation" : "/**\n@param file */",
+        "setterMethodName" : "setFile",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "ImageFile",
+          "variableName" : "file",
+          "variableType" : "ImageFile",
+          "documentation" : "",
+          "simpleType" : "ImageFile",
+          "variableSetterType" : "ImageFile"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "ImageFile",
+          "variableName" : "file",
+          "variableType" : "ImageFile",
+          "documentation" : "",
+          "simpleType" : "ImageFile",
+          "variableSetterType" : "ImageFile"
+        },
+        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
+        "File" : {
+          "c2jName" : "file",
+          "c2jShape" : "ImageFile",
+          "deprecated" : false,
+          "documentation" : "",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withFile",
+          "getterDocumentation" : "/**\n@return */",
+          "getterMethodName" : "getFile",
+          "getterModel" : {
+            "returnType" : "ImageFile",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "file",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "file",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "StructuredPojo",
+          "marshallingType" : "STRUCTURED",
+          "name" : "File",
+          "sensitive" : false,
+          "setterDocumentation" : "/**\n@param file */",
+          "setterMethodName" : "setFile",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "ImageFile",
+            "variableName" : "file",
+            "variableType" : "ImageFile",
+            "documentation" : "",
+            "simpleType" : "ImageFile",
+            "variableSetterType" : "ImageFile"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "ImageFile",
+            "variableName" : "file",
+            "variableType" : "ImageFile",
+            "documentation" : "",
+            "simpleType" : "ImageFile",
+            "variableSetterType" : "ImageFile"
+          },
+          "xmlNameSpaceUri" : null
+        },
         "Id" : {
           "c2jName" : "id",
-          "c2jShape" : "IdentityId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The AWS SSO ID of the group.</p>",
+          "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@return The AWS SSO ID of the group.*/",
+          "getterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@return The ID of an existing image. Specify this parameter to keep an existing image.*/",
           "getterMethodName" : "getId",
           "getterModel" : {
             "returnType" : "String",
@@ -55729,7 +61219,7 @@
           "marshallingType" : "STRING",
           "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.*/",
+          "setterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.*/",
           "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
@@ -55744,13 +61234,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS SSO ID of the group.</p>\n@param id The AWS SSO ID of the group.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "id",
             "variableType" : "String",
-            "documentation" : "<p>The AWS SSO ID of the group.</p>",
+            "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -55760,8 +61250,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "id" ],
-      "shapeName" : "GroupIdentity",
+      "required" : null,
+      "shapeName" : "Image",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -55770,17 +61260,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "GroupIdentity",
-        "variableName" : "groupIdentity",
-        "variableType" : "GroupIdentity",
+        "variableDeclarationType" : "Image",
+        "variableName" : "image",
+        "variableType" : "Image",
         "documentation" : null,
-        "simpleType" : "GroupIdentity",
-        "variableSetterType" : "GroupIdentity"
+        "simpleType" : "Image",
+        "variableSetterType" : "Image"
       },
       "wrapper" : false
     },
-    "IAMUserIdentity" : {
-      "c2jName" : "IAMUserIdentity",
+    "ImageFile" : {
+      "c2jName" : "ImageFile",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -55788,11 +61278,11 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains information about an AWS Identity and Access Management (IAM) user.</p>",
+      "documentation" : "<p>Contains an image file.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.IAMUserIdentity",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ImageFile",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -55800,16 +61290,85 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "arn",
-        "c2jShape" : "ARN",
+        "c2jName" : "data",
+        "c2jShape" : "ImageFileData",
+        "deprecated" : false,
+        "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withData",
+        "getterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n<p>\n{@code ByteBuffer}s are stateful. Calling their {@code get} methods changes their {@code position}. We recommend using {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view of the buffer with an independent {@code position}, and calling {@code get} methods on this rather than directly on the returned {@code ByteBuffer}. Doing so will ensure that anyone else using the {@code ByteBuffer} will not be affected by changes to the {@code position}.\n</p>\n@return The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
+        "getterMethodName" : "getData",
+        "getterModel" : {
+          "returnType" : "java.nio.ByteBuffer",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "data",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "data",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "java.nio.ByteBuffer",
+        "marshallingType" : "BYTE_BUFFER",
+        "name" : "Data",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
+        "setterMethodName" : "setData",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.nio.ByteBuffer",
+          "variableName" : "data",
+          "variableType" : "java.nio.ByteBuffer",
+          "documentation" : "",
+          "simpleType" : "ByteBuffer",
+          "variableSetterType" : "java.nio.ByteBuffer"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.nio.ByteBuffer",
+          "variableName" : "data",
+          "variableType" : "java.nio.ByteBuffer",
+          "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
+          "simpleType" : "ByteBuffer",
+          "variableSetterType" : "java.nio.ByteBuffer"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "type",
+        "c2jShape" : "ImageFileType",
         "deprecated" : false,
-        "documentation" : "<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+        "documentation" : "<p>The file type of the image.</p>",
         "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withArn",
-        "getterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@return The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
-        "getterMethodName" : "getArn",
+        "enumType" : "ImageFileType",
+        "fluentSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
+        "fluentSetterMethodName" : "withType",
+        "getterDocumentation" : "/**<p>The file type of the image.</p>\n@return The file type of the image.\n@see ImageFileType*/",
+        "getterMethodName" : "getType",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -55824,11 +61383,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "arn",
+          "marshallLocationName" : "type",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "arn",
+          "unmarshallLocationName" : "type",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -55840,14 +61399,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Arn",
+        "name" : "Type",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
-        "setterMethodName" : "setArn",
+        "setterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@see ImageFileType*/",
+        "setterMethodName" : "setType",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "arn",
+          "variableName" : "type",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -55857,30 +61416,100 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "arn",
+          "variableName" : "type",
           "variableType" : "String",
-          "documentation" : "<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+          "documentation" : "<p>The file type of the image.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Arn" : {
-          "c2jName" : "arn",
-          "c2jShape" : "ARN",
+        "Data" : {
+          "c2jName" : "data",
+          "c2jShape" : "ImageFileData",
           "deprecated" : false,
-          "documentation" : "<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+          "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withArn",
-          "getterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@return The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
-          "getterMethodName" : "getArn",
+          "fluentSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withData",
+          "getterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n<p>\n{@code ByteBuffer}s are stateful. Calling their {@code get} methods changes their {@code position}. We recommend using {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view of the buffer with an independent {@code position}, and calling {@code get} methods on this rather than directly on the returned {@code ByteBuffer}. Doing so will ensure that anyone else using the {@code ByteBuffer} will not be affected by changes to the {@code position}.\n</p>\n@return The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
+          "getterMethodName" : "getData",
+          "getterModel" : {
+            "returnType" : "java.nio.ByteBuffer",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "data",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "data",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "java.nio.ByteBuffer",
+          "marshallingType" : "BYTE_BUFFER",
+          "name" : "Data",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
+          "setterMethodName" : "setData",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.nio.ByteBuffer",
+            "variableName" : "data",
+            "variableType" : "java.nio.ByteBuffer",
+            "documentation" : "",
+            "simpleType" : "ByteBuffer",
+            "variableSetterType" : "java.nio.ByteBuffer"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.nio.ByteBuffer",
+            "variableName" : "data",
+            "variableType" : "java.nio.ByteBuffer",
+            "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
+            "simpleType" : "ByteBuffer",
+            "variableSetterType" : "java.nio.ByteBuffer"
+          },
+          "xmlNameSpaceUri" : null
+        },
+        "Type" : {
+          "c2jName" : "type",
+          "c2jShape" : "ImageFileType",
+          "deprecated" : false,
+          "documentation" : "<p>The file type of the image.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "ImageFileType",
+          "fluentSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
+          "fluentSetterMethodName" : "withType",
+          "getterDocumentation" : "/**<p>The file type of the image.</p>\n@return The file type of the image.\n@see ImageFileType*/",
+          "getterMethodName" : "getType",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -55895,11 +61524,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "arn",
+            "marshallLocationName" : "type",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "arn",
+            "unmarshallLocationName" : "type",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -55911,14 +61540,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Arn",
+          "name" : "Type",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>*/",
-          "setterMethodName" : "setArn",
+          "setterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@see ImageFileType*/",
+          "setterMethodName" : "setType",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "arn",
+            "variableName" : "type",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -55928,13 +61557,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>\n@param arn The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "arn",
+            "variableName" : "type",
             "variableType" : "String",
-            "documentation" : "<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>",
+            "documentation" : "<p>The file type of the image.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -55944,8 +61573,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "arn" ],
-      "shapeName" : "IAMUserIdentity",
+      "required" : [ "data", "type" ],
+      "shapeName" : "ImageFile",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -55954,17 +61583,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "IAMUserIdentity",
-        "variableName" : "iAMUserIdentity",
-        "variableType" : "IAMUserIdentity",
+        "variableDeclarationType" : "ImageFile",
+        "variableName" : "imageFile",
+        "variableType" : "ImageFile",
         "documentation" : null,
-        "simpleType" : "IAMUserIdentity",
-        "variableSetterType" : "IAMUserIdentity"
+        "simpleType" : "ImageFile",
+        "variableSetterType" : "ImageFile"
       },
       "wrapper" : false
     },
-    "Identity" : {
-      "c2jName" : "Identity",
+    "ImageFileType" : {
+      "c2jName" : "ImageFileType",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -55972,11 +61601,58 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains an identity that can access an AWS IoT SiteWise Monitor resource.</p> <note> <p>Currently, you can't use AWS APIs to retrieve AWS SSO identity IDs. You can find the AWS SSO identity IDs in the URL of user and group pages in the <a href=\"https://console.aws.amazon.com/singlesignon\">AWS SSO console</a>.</p> </note>",
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "PNG",
+        "value" : "PNG"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.ImageFileType",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "ImageFileType",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "ImageFileType",
+        "variableName" : "imageFileType",
+        "variableType" : "ImageFileType",
+        "documentation" : null,
+        "simpleType" : "ImageFileType",
+        "variableSetterType" : "ImageFileType"
+      },
+      "wrapper" : false
+    },
+    "ImageLocation" : {
+      "c2jName" : "ImageLocation",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>Contains an image that is uploaded to AWS IoT SiteWise and available at a URL.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Identity",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ImageLocation",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -55984,87 +61660,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "user",
-        "c2jShape" : "UserIdentity",
-        "deprecated" : false,
-        "documentation" : "<p>An AWS SSO user identity.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withUser",
-        "getterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@return An AWS SSO user identity.*/",
-        "getterMethodName" : "getUser",
-        "getterModel" : {
-          "returnType" : "UserIdentity",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "user",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "user",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "User",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.*/",
-        "setterMethodName" : "setUser",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "UserIdentity",
-          "variableName" : "user",
-          "variableType" : "UserIdentity",
-          "documentation" : "",
-          "simpleType" : "UserIdentity",
-          "variableSetterType" : "UserIdentity"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : false,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "UserIdentity",
-          "variableName" : "user",
-          "variableType" : "UserIdentity",
-          "documentation" : "<p>An AWS SSO user identity.</p>",
-          "simpleType" : "UserIdentity",
-          "variableSetterType" : "UserIdentity"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "group",
-        "c2jShape" : "GroupIdentity",
+        "c2jName" : "id",
+        "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>An AWS SSO group identity.</p>",
+        "documentation" : "<p>The ID of the image.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withGroup",
-        "getterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@return An AWS SSO group identity.*/",
-        "getterMethodName" : "getGroup",
+        "fluentSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withId",
+        "getterDocumentation" : "/**<p>The ID of the image.</p>\n@return The ID of the image.*/",
+        "getterMethodName" : "getId",
         "getterModel" : {
-          "returnType" : "GroupIdentity",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -56077,11 +61684,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "group",
+          "marshallLocationName" : "id",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "group",
+          "unmarshallLocationName" : "id",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -56091,49 +61698,49 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "Group",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Id",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.*/",
-        "setterMethodName" : "setGroup",
+        "setterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.*/",
+        "setterMethodName" : "setId",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "GroupIdentity",
-          "variableName" : "group",
-          "variableType" : "GroupIdentity",
+          "variableDeclarationType" : "String",
+          "variableName" : "id",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "GroupIdentity",
-          "variableSetterType" : "GroupIdentity"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "GroupIdentity",
-          "variableName" : "group",
-          "variableType" : "GroupIdentity",
-          "documentation" : "<p>An AWS SSO group identity.</p>",
-          "simpleType" : "GroupIdentity",
-          "variableSetterType" : "GroupIdentity"
+          "variableDeclarationType" : "String",
+          "variableName" : "id",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the image.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "iamUser",
-        "c2jShape" : "IAMUserIdentity",
+        "c2jName" : "url",
+        "c2jShape" : "Url",
         "deprecated" : false,
-        "documentation" : "<p>An IAM user identity.</p>",
+        "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withIamUser",
-        "getterDocumentation" : "/**<p>An IAM user identity.</p>\n@return An IAM user identity.*/",
-        "getterMethodName" : "getIamUser",
+        "fluentSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withUrl",
+        "getterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@return The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
+        "getterMethodName" : "getUrl",
         "getterModel" : {
-          "returnType" : "IAMUserIdentity",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -56146,11 +61753,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "iamUser",
+          "marshallLocationName" : "url",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "iamUser",
+          "unmarshallLocationName" : "url",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -56160,121 +61767,51 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "IamUser",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "Url",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.*/",
-        "setterMethodName" : "setIamUser",
+        "setterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
+        "setterMethodName" : "setUrl",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "IAMUserIdentity",
-          "variableName" : "iamUser",
-          "variableType" : "IAMUserIdentity",
+          "variableDeclarationType" : "String",
+          "variableName" : "url",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "IAMUserIdentity",
-          "variableSetterType" : "IAMUserIdentity"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "IAMUserIdentity",
-          "variableName" : "iamUser",
-          "variableType" : "IAMUserIdentity",
-          "documentation" : "<p>An IAM user identity.</p>",
-          "simpleType" : "IAMUserIdentity",
-          "variableSetterType" : "IAMUserIdentity"
+          "variableDeclarationType" : "String",
+          "variableName" : "url",
+          "variableType" : "String",
+          "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "Group" : {
-          "c2jName" : "group",
-          "c2jShape" : "GroupIdentity",
-          "deprecated" : false,
-          "documentation" : "<p>An AWS SSO group identity.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withGroup",
-          "getterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@return An AWS SSO group identity.*/",
-          "getterMethodName" : "getGroup",
-          "getterModel" : {
-            "returnType" : "GroupIdentity",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "group",
-            "queryString" : false,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "group",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "Group",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.*/",
-          "setterMethodName" : "setGroup",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "GroupIdentity",
-            "variableName" : "group",
-            "variableType" : "GroupIdentity",
-            "documentation" : "",
-            "simpleType" : "GroupIdentity",
-            "variableSetterType" : "GroupIdentity"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : false,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An AWS SSO group identity.</p>\n@param group An AWS SSO group identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "GroupIdentity",
-            "variableName" : "group",
-            "variableType" : "GroupIdentity",
-            "documentation" : "<p>An AWS SSO group identity.</p>",
-            "simpleType" : "GroupIdentity",
-            "variableSetterType" : "GroupIdentity"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "IamUser" : {
-          "c2jName" : "iamUser",
-          "c2jShape" : "IAMUserIdentity",
+        "Id" : {
+          "c2jName" : "id",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>An IAM user identity.</p>",
+          "documentation" : "<p>The ID of the image.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withIamUser",
-          "getterDocumentation" : "/**<p>An IAM user identity.</p>\n@return An IAM user identity.*/",
-          "getterMethodName" : "getIamUser",
+          "fluentSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withId",
+          "getterDocumentation" : "/**<p>The ID of the image.</p>\n@return The ID of the image.*/",
+          "getterMethodName" : "getId",
           "getterModel" : {
-            "returnType" : "IAMUserIdentity",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -56287,11 +61824,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "iamUser",
+            "marshallLocationName" : "id",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "iamUser",
+            "unmarshallLocationName" : "id",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -56301,50 +61838,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "IamUser",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Id",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.*/",
-          "setterMethodName" : "setIamUser",
+          "setterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.*/",
+          "setterMethodName" : "setId",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "IAMUserIdentity",
-            "variableName" : "iamUser",
-            "variableType" : "IAMUserIdentity",
+            "variableDeclarationType" : "String",
+            "variableName" : "id",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "IAMUserIdentity",
-            "variableSetterType" : "IAMUserIdentity"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An IAM user identity.</p>\n@param iamUser An IAM user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "IAMUserIdentity",
-            "variableName" : "iamUser",
-            "variableType" : "IAMUserIdentity",
-            "documentation" : "<p>An IAM user identity.</p>",
-            "simpleType" : "IAMUserIdentity",
-            "variableSetterType" : "IAMUserIdentity"
+            "variableDeclarationType" : "String",
+            "variableName" : "id",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the image.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "User" : {
-          "c2jName" : "user",
-          "c2jShape" : "UserIdentity",
+        "Url" : {
+          "c2jName" : "url",
+          "c2jShape" : "Url",
           "deprecated" : false,
-          "documentation" : "<p>An AWS SSO user identity.</p>",
+          "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withUser",
-          "getterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@return An AWS SSO user identity.*/",
-          "getterMethodName" : "getUser",
+          "fluentSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withUrl",
+          "getterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@return The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
+          "getterMethodName" : "getUrl",
           "getterModel" : {
-            "returnType" : "UserIdentity",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -56357,11 +61894,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "user",
+            "marshallLocationName" : "url",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "user",
+            "unmarshallLocationName" : "url",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -56371,34 +61908,34 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "User",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "Url",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.*/",
-          "setterMethodName" : "setUser",
+          "setterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
+          "setterMethodName" : "setUrl",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "UserIdentity",
-            "variableName" : "user",
-            "variableType" : "UserIdentity",
+            "variableDeclarationType" : "String",
+            "variableName" : "url",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "UserIdentity",
-            "variableSetterType" : "UserIdentity"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An AWS SSO user identity.</p>\n@param user An AWS SSO user identity.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "UserIdentity",
-            "variableName" : "user",
-            "variableType" : "UserIdentity",
-            "documentation" : "<p>An AWS SSO user identity.</p>",
-            "simpleType" : "UserIdentity",
-            "variableSetterType" : "UserIdentity"
+            "variableDeclarationType" : "String",
+            "variableName" : "url",
+            "variableType" : "String",
+            "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         }
@@ -56406,8 +61943,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.model",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "Identity",
+      "required" : [ "id", "url" ],
+      "shapeName" : "ImageLocation",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -56416,17 +61953,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "Identity",
-        "variableName" : "identity",
-        "variableType" : "Identity",
+        "variableDeclarationType" : "ImageLocation",
+        "variableName" : "imageLocation",
+        "variableType" : "ImageLocation",
         "documentation" : null,
-        "simpleType" : "Identity",
-        "variableSetterType" : "Identity"
+        "simpleType" : "ImageLocation",
+        "variableSetterType" : "ImageLocation"
       },
       "wrapper" : false
     },
-    "IdentityType" : {
-      "c2jName" : "IdentityType",
+    "InternalFailureException" : {
+      "c2jName" : "InternalFailureException",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -56434,52 +61971,81 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "",
+      "documentation" : "<p>AWS IoT SiteWise can't process your request right now. Try again later.</p>",
       "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "USER",
-        "value" : "USER"
-      }, {
-        "name" : "GROUP",
-        "value" : "GROUP"
-      }, {
-        "name" : "IAM",
-        "value" : "IAM"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.IdentityType",
+      "enums" : null,
+      "errorCode" : "InternalFailureException",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.InternalFailureException",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : null,
-      "members" : null,
+      "members" : [ ],
       "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "packageName" : "com.amazonaws.services.iotsitewise.exception",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "IdentityType",
+      "required" : [ "message" ],
+      "shapeName" : "InternalFailureException",
       "signerAware" : false,
       "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "InternalFailureException",
+        "variableName" : "internalFailureException",
+        "variableType" : "InternalFailureException",
+        "documentation" : null,
+        "simpleType" : "InternalFailureException",
+        "variableSetterType" : "InternalFailureException"
+      },
+      "wrapper" : false
+    },
+    "InvalidRequestException" : {
+      "c2jName" : "InvalidRequestException",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
       },
+      "deprecated" : false,
+      "documentation" : "<p>The request isn't valid. This can occur if your request contains malformed JSON or unsupported characters. Check your request and try again.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : "InvalidRequestException",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.InvalidRequestException",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ ],
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "message" ],
+      "shapeName" : "InvalidRequestException",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "IdentityType",
-        "variableName" : "identityType",
-        "variableType" : "IdentityType",
+        "variableDeclarationType" : "InvalidRequestException",
+        "variableName" : "invalidRequestException",
+        "variableType" : "InvalidRequestException",
         "documentation" : null,
-        "simpleType" : "IdentityType",
-        "variableSetterType" : "IdentityType"
+        "simpleType" : "InvalidRequestException",
+        "variableSetterType" : "InvalidRequestException"
       },
       "wrapper" : false
     },
-    "Image" : {
-      "c2jName" : "Image",
+    "LimitExceededException" : {
+      "c2jName" : "LimitExceededException",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -56487,28 +62053,352 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>Contains an image that is one of the following:</p> <ul> <li> <p>An image file. Choose this option to upload a new image.</p> </li> <li> <p>The ID of an existing image. Choose this option to keep an existing image.</p> </li> </ul>",
+      "documentation" : "<p>You've reached the limit for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.Image",
+      "errorCode" : "LimitExceededException",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.LimitExceededException",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : null,
+      "members" : [ ],
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "message" ],
+      "shapeName" : "LimitExceededException",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "LimitExceededException",
+        "variableName" : "limitExceededException",
+        "variableType" : "LimitExceededException",
+        "documentation" : null,
+        "simpleType" : "LimitExceededException",
+        "variableSetterType" : "LimitExceededException"
+      },
+      "wrapper" : false
+    },
+    "ListAccessPoliciesRequest" : {
+      "c2jName" : "ListAccessPoliciesRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.ListAccessPoliciesRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "ListAccessPolicies",
+        "locationName" : null,
+        "requestUri" : "/access-policies",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
       "members" : [ {
-        "c2jName" : "id",
+        "c2jName" : "identityType",
+        "c2jShape" : "IdentityType",
+        "deprecated" : false,
+        "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "IdentityType",
+        "fluentSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
+        "fluentSetterMethodName" : "withIdentityType",
+        "getterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@return The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
+        "getterMethodName" : "getIdentityType",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "identityType",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "identityType",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "IdentityType",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
+        "setterMethodName" : "setIdentityType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "identityType",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "identityType",
+          "variableType" : "String",
+          "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "identityId",
+        "c2jShape" : "IdentityId",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withIdentityId",
+        "getterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@return The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
+        "getterMethodName" : "getIdentityId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "identityId",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "identityId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "IdentityId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
+        "setterMethodName" : "setIdentityId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "identityId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "identityId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "resourceType",
+        "c2jShape" : "ResourceType",
+        "deprecated" : false,
+        "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "ResourceType",
+        "fluentSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
+        "fluentSetterMethodName" : "withResourceType",
+        "getterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@return The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
+        "getterMethodName" : "getResourceType",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "resourceType",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "resourceType",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ResourceType",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
+        "setterMethodName" : "setResourceType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "resourceType",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "resourceType",
+          "variableType" : "String",
+          "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "resourceId",
         "c2jShape" : "ID",
         "deprecated" : false,
-        "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
+        "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withResourceId",
+        "getterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@return The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
+        "getterMethodName" : "getResourceId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "resourceId",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "resourceId",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "ResourceId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
+        "setterMethodName" : "setResourceId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "resourceId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "resourceId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "iamArn",
+        "c2jShape" : "ARN",
+        "deprecated" : false,
+        "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@return The ID of an existing image. Specify this parameter to keep an existing image.*/",
-        "getterMethodName" : "getId",
+        "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withIamArn",
+        "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
+        "getterMethodName" : "getIamArn",
         "getterModel" : {
           "returnType" : "String",
           "documentation" : null
@@ -56521,13 +62411,13 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "iamArn",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "id",
+          "unmarshallLocationName" : "iamArn",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -56539,14 +62429,14 @@
         "mapModel" : null,
         "marshallingTargetClass" : "String",
         "marshallingType" : "STRING",
-        "name" : "Id",
+        "name" : "IamArn",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.*/",
-        "setterMethodName" : "setId",
+        "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
+        "setterMethodName" : "setIamArn",
         "setterModel" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "iamArn",
           "variableType" : "String",
           "documentation" : "",
           "simpleType" : "String",
@@ -56556,30 +62446,30 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
-          "variableName" : "id",
+          "variableName" : "iamArn",
           "variableType" : "String",
-          "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
+          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
       }, {
-        "c2jName" : "file",
-        "c2jShape" : "ImageFile",
+        "c2jName" : "nextToken",
+        "c2jShape" : "NextToken",
         "deprecated" : false,
-        "documentation" : "",
+        "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withFile",
-        "getterDocumentation" : "/**\n@return */",
-        "getterMethodName" : "getFile",
+        "fluentSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withNextToken",
+        "getterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@return The token to be used for the next set of paginated results.*/",
+        "getterMethodName" : "getNextToken",
         "getterModel" : {
-          "returnType" : "ImageFile",
+          "returnType" : "String",
           "documentation" : null
         },
         "http" : {
@@ -56590,13 +62480,13 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "file",
-          "queryString" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "nextToken",
+          "queryString" : true,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "file",
+          "unmarshallLocationName" : "nextToken",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -56606,51 +62496,120 @@
         "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "StructuredPojo",
-        "marshallingType" : "STRUCTURED",
-        "name" : "File",
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "NextToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**\n@param file */",
-        "setterMethodName" : "setFile",
+        "setterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.*/",
+        "setterMethodName" : "setNextToken",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ImageFile",
-          "variableName" : "file",
-          "variableType" : "ImageFile",
+          "variableDeclarationType" : "String",
+          "variableName" : "nextToken",
+          "variableType" : "String",
           "documentation" : "",
-          "simpleType" : "ImageFile",
-          "variableSetterType" : "ImageFile"
+          "simpleType" : "String",
+          "variableSetterType" : "String"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : false,
+        "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "ImageFile",
-          "variableName" : "file",
-          "variableType" : "ImageFile",
+          "variableDeclarationType" : "String",
+          "variableName" : "nextToken",
+          "variableType" : "String",
+          "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "maxResults",
+        "c2jShape" : "MaxResults",
+        "deprecated" : false,
+        "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withMaxResults",
+        "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "getterMethodName" : "getMaxResults",
+        "getterModel" : {
+          "returnType" : "Integer",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "maxResults",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "maxResults",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "Integer",
+        "marshallingType" : "INTEGER",
+        "name" : "MaxResults",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "setterMethodName" : "setMaxResults",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Integer",
+          "variableName" : "maxResults",
+          "variableType" : "Integer",
           "documentation" : "",
-          "simpleType" : "ImageFile",
-          "variableSetterType" : "ImageFile"
+          "simpleType" : "Integer",
+          "variableSetterType" : "Integer"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Integer",
+          "variableName" : "maxResults",
+          "variableType" : "Integer",
+          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+          "simpleType" : "Integer",
+          "variableSetterType" : "Integer"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "File" : {
-          "c2jName" : "file",
-          "c2jShape" : "ImageFile",
+        "IamArn" : {
+          "c2jName" : "iamArn",
+          "c2jShape" : "ARN",
           "deprecated" : false,
-          "documentation" : "",
+          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withFile",
-          "getterDocumentation" : "/**\n@return */",
-          "getterMethodName" : "getFile",
+          "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withIamArn",
+          "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
+          "getterMethodName" : "getIamArn",
           "getterModel" : {
-            "returnType" : "ImageFile",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -56661,13 +62620,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "file",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "iamArn",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "file",
+            "unmarshallLocationName" : "iamArn",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -56677,48 +62636,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "StructuredPojo",
-          "marshallingType" : "STRUCTURED",
-          "name" : "File",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "IamArn",
           "sensitive" : false,
-          "setterDocumentation" : "/**\n@param file */",
-          "setterMethodName" : "setFile",
+          "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
+          "setterMethodName" : "setIamArn",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "ImageFile",
-            "variableName" : "file",
-            "variableType" : "ImageFile",
+            "variableDeclarationType" : "String",
+            "variableName" : "iamArn",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "ImageFile",
-            "variableSetterType" : "ImageFile"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : false,
+          "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**\n@param file \n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "ImageFile",
-            "variableName" : "file",
-            "variableType" : "ImageFile",
-            "documentation" : "",
-            "simpleType" : "ImageFile",
-            "variableSetterType" : "ImageFile"
+            "variableDeclarationType" : "String",
+            "variableName" : "iamArn",
+            "variableType" : "String",
+            "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
+        "IdentityId" : {
+          "c2jName" : "identityId",
+          "c2jShape" : "IdentityId",
           "deprecated" : false,
-          "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
+          "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@return The ID of an existing image. Specify this parameter to keep an existing image.*/",
-          "getterMethodName" : "getId",
+          "fluentSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withIdentityId",
+          "getterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@return The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
+          "getterMethodName" : "getIdentityId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -56731,13 +62690,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "identityId",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "identityId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -56749,14 +62708,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Id",
+          "name" : "IdentityId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
+          "setterMethodName" : "setIdentityId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "identityId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -56766,214 +62725,31 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>\n@param id The ID of an existing image. Specify this parameter to keep an existing image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "identityId",
             "variableType" : "String",
-            "documentation" : "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>",
+            "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "Image",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "Image",
-        "variableName" : "image",
-        "variableType" : "Image",
-        "documentation" : null,
-        "simpleType" : "Image",
-        "variableSetterType" : "Image"
-      },
-      "wrapper" : false
-    },
-    "ImageFile" : {
-      "c2jName" : "ImageFile",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>Contains an image file.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ImageFile",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "data",
-        "c2jShape" : "ImageFileData",
-        "deprecated" : false,
-        "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withData",
-        "getterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n<p>\n{@code ByteBuffer}s are stateful. Calling their {@code get} methods changes their {@code position}. We recommend using {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view of the buffer with an independent {@code position}, and calling {@code get} methods on this rather than directly on the returned {@code ByteBuffer}. Doing so will ensure that anyone else using the {@code ByteBuffer} will not be affected by changes to the {@code position}.\n</p>\n@return The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
-        "getterMethodName" : "getData",
-        "getterModel" : {
-          "returnType" : "java.nio.ByteBuffer",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "data",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "data",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "java.nio.ByteBuffer",
-        "marshallingType" : "BYTE_BUFFER",
-        "name" : "Data",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
-        "setterMethodName" : "setData",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.nio.ByteBuffer",
-          "variableName" : "data",
-          "variableType" : "java.nio.ByteBuffer",
-          "documentation" : "",
-          "simpleType" : "ByteBuffer",
-          "variableSetterType" : "java.nio.ByteBuffer"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "java.nio.ByteBuffer",
-          "variableName" : "data",
-          "variableType" : "java.nio.ByteBuffer",
-          "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
-          "simpleType" : "ByteBuffer",
-          "variableSetterType" : "java.nio.ByteBuffer"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "type",
-        "c2jShape" : "ImageFileType",
-        "deprecated" : false,
-        "documentation" : "<p>The file type of the image.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "ImageFileType",
-        "fluentSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
-        "fluentSetterMethodName" : "withType",
-        "getterDocumentation" : "/**<p>The file type of the image.</p>\n@return The file type of the image.\n@see ImageFileType*/",
-        "getterMethodName" : "getType",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "type",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "type",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Type",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@see ImageFileType*/",
-        "setterMethodName" : "setType",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "type",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "type",
-          "variableType" : "String",
-          "documentation" : "<p>The file type of the image.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Data" : {
-          "c2jName" : "data",
-          "c2jShape" : "ImageFileData",
+        "IdentityType" : {
+          "c2jName" : "identityType",
+          "c2jShape" : "IdentityType",
           "deprecated" : false,
-          "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
+          "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withData",
-          "getterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n<p>\n{@code ByteBuffer}s are stateful. Calling their {@code get} methods changes their {@code position}. We recommend using {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view of the buffer with an independent {@code position}, and calling {@code get} methods on this rather than directly on the returned {@code ByteBuffer}. Doing so will ensure that anyone else using the {@code ByteBuffer} will not be affected by changes to the {@code position}.\n</p>\n@return The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
-          "getterMethodName" : "getData",
+          "enumType" : "IdentityType",
+          "fluentSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
+          "fluentSetterMethodName" : "withIdentityType",
+          "getterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@return The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
+          "getterMethodName" : "getIdentityType",
           "getterModel" : {
-            "returnType" : "java.nio.ByteBuffer",
+            "returnType" : "String",
             "documentation" : null
           },
           "http" : {
@@ -56984,13 +62760,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "data",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "identityType",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "data",
+            "unmarshallLocationName" : "identityType",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -57000,50 +62776,50 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "java.nio.ByteBuffer",
-          "marshallingType" : "BYTE_BUFFER",
-          "name" : "Data",
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "IdentityType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p><p>\nThe AWS SDK for Java performs a Base64 encoding on this field before sending this request to the AWS service. Users of the SDK should not perform Base64 encoding on this field.\n</p>\n<p>\nWarning: ByteBuffers returned by the SDK are mutable. Changes to the content or position of the byte buffer will be seen by all objects that have a reference to this object. It is recommended to call ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or reading from the buffer. This behavior will be changed in a future major version of the SDK.\n</p>\n\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.*/",
-          "setterMethodName" : "setData",
+          "setterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
+          "setterMethodName" : "setIdentityType",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.nio.ByteBuffer",
-            "variableName" : "data",
-            "variableType" : "java.nio.ByteBuffer",
+            "variableDeclarationType" : "String",
+            "variableName" : "identityType",
+            "variableType" : "String",
             "documentation" : "",
-            "simpleType" : "ByteBuffer",
-            "variableSetterType" : "java.nio.ByteBuffer"
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>\n@param data The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.nio.ByteBuffer",
-            "variableName" : "data",
-            "variableType" : "java.nio.ByteBuffer",
-            "documentation" : "<p>The image file contents, represented as a base64-encoded string. The file size must be less than 1 MB.</p>",
-            "simpleType" : "ByteBuffer",
-            "variableSetterType" : "java.nio.ByteBuffer"
+            "variableDeclarationType" : "String",
+            "variableName" : "identityType",
+            "variableType" : "String",
+            "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Type" : {
-          "c2jName" : "type",
-          "c2jShape" : "ImageFileType",
+        "MaxResults" : {
+          "c2jName" : "maxResults",
+          "c2jShape" : "MaxResults",
           "deprecated" : false,
-          "documentation" : "<p>The file type of the image.</p>",
+          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
           "endpointDiscoveryId" : false,
-          "enumType" : "ImageFileType",
-          "fluentSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
-          "fluentSetterMethodName" : "withType",
-          "getterDocumentation" : "/**<p>The file type of the image.</p>\n@return The file type of the image.\n@see ImageFileType*/",
-          "getterMethodName" : "getType",
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withMaxResults",
+          "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+          "getterMethodName" : "getMaxResults",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "Integer",
             "documentation" : null
           },
           "http" : {
@@ -57054,13 +62830,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "type",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "maxResults",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "type",
+            "unmarshallLocationName" : "maxResults",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -57070,278 +62846,48 @@
           "listModel" : null,
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "Type",
+          "marshallingTargetClass" : "Integer",
+          "marshallingType" : "INTEGER",
+          "name" : "MaxResults",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@see ImageFileType*/",
-          "setterMethodName" : "setType",
+          "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+          "setterMethodName" : "setMaxResults",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "type",
-            "variableType" : "String",
+            "variableDeclarationType" : "Integer",
+            "variableName" : "maxResults",
+            "variableType" : "Integer",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "Integer",
+            "variableSetterType" : "Integer"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The file type of the image.</p>\n@param type The file type of the image.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ImageFileType*/",
+          "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "type",
-            "variableType" : "String",
-            "documentation" : "<p>The file type of the image.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "Integer",
+            "variableName" : "maxResults",
+            "variableType" : "Integer",
+            "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+            "simpleType" : "Integer",
+            "variableSetterType" : "Integer"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "data", "type" ],
-      "shapeName" : "ImageFile",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "ImageFile",
-        "variableName" : "imageFile",
-        "variableType" : "ImageFile",
-        "documentation" : null,
-        "simpleType" : "ImageFile",
-        "variableSetterType" : "ImageFile"
-      },
-      "wrapper" : false
-    },
-    "ImageFileType" : {
-      "c2jName" : "ImageFileType",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "",
-      "endpointDiscoveryMembers" : null,
-      "enums" : [ {
-        "name" : "PNG",
-        "value" : "PNG"
-      } ],
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.ImageFileType",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : null,
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.enum",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "ImageFileType",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "ImageFileType",
-        "variableName" : "imageFileType",
-        "variableType" : "ImageFileType",
-        "documentation" : null,
-        "simpleType" : "ImageFileType",
-        "variableSetterType" : "ImageFileType"
-      },
-      "wrapper" : false
-    },
-    "ImageLocation" : {
-      "c2jName" : "ImageLocation",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>Contains an image that is uploaded to AWS IoT SiteWise and available at a URL.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.model.ImageLocation",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ {
-        "c2jName" : "id",
-        "c2jShape" : "ID",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the image.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withId",
-        "getterDocumentation" : "/**<p>The ID of the image.</p>\n@return The ID of the image.*/",
-        "getterMethodName" : "getId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "id",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "id",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Id",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.*/",
-        "setterMethodName" : "setId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "id",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the image.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "url",
-        "c2jShape" : "Url",
-        "deprecated" : false,
-        "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withUrl",
-        "getterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@return The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
-        "getterMethodName" : "getUrl",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : null,
-          "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "url",
-          "queryString" : false,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "url",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "Url",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
-        "setterMethodName" : "setUrl",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "url",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "url",
-          "variableType" : "String",
-          "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
         },
-        "xmlNameSpaceUri" : null
-      } ],
-      "membersAsMap" : {
-        "Id" : {
-          "c2jName" : "id",
-          "c2jShape" : "ID",
+        "NextToken" : {
+          "c2jName" : "nextToken",
+          "c2jShape" : "NextToken",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the image.</p>",
+          "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withId",
-          "getterDocumentation" : "/**<p>The ID of the image.</p>\n@return The ID of the image.*/",
-          "getterMethodName" : "getId",
+          "fluentSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withNextToken",
+          "getterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@return The token to be used for the next set of paginated results.*/",
+          "getterMethodName" : "getNextToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -57354,13 +62900,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "id",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "nextToken",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "id",
+            "unmarshallLocationName" : "nextToken",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -57372,14 +62918,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Id",
+          "name" : "NextToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.*/",
-          "setterMethodName" : "setId",
+          "setterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.*/",
+          "setterMethodName" : "setNextToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "nextToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -57389,29 +62935,29 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the image.</p>\n@param id The ID of the image.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "id",
+            "variableName" : "nextToken",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the image.</p>",
+            "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
         },
-        "Url" : {
-          "c2jName" : "url",
-          "c2jShape" : "Url",
+        "ResourceId" : {
+          "c2jName" : "resourceId",
+          "c2jShape" : "ID",
           "deprecated" : false,
-          "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
+          "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withUrl",
-          "getterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@return The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
-          "getterMethodName" : "getUrl",
+          "fluentSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withResourceId",
+          "getterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@return The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
+          "getterMethodName" : "getResourceId",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -57424,13 +62970,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : null,
-            "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "url",
-            "queryString" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "resourceId",
+            "queryString" : true,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "url",
+            "unmarshallLocationName" : "resourceId",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -57442,14 +62988,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "Url",
+          "name" : "ResourceId",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image*/",
-          "setterMethodName" : "setUrl",
+          "setterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
+          "setterMethodName" : "setResourceId",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "url",
+            "variableName" : "resourceId",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -57459,166 +63005,110 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>\n@param url The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "url",
+            "variableName" : "resourceId",
             "variableType" : "String",
-            "documentation" : "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view and download the image</p>",
+            "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        }
-      },
-      "packageName" : "com.amazonaws.services.iotsitewise.model",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "id", "url" ],
-      "shapeName" : "ImageLocation",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : {
-        "flattened" : false,
-        "resultWrapper" : null
-      },
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "ImageLocation",
-        "variableName" : "imageLocation",
-        "variableType" : "ImageLocation",
-        "documentation" : null,
-        "simpleType" : "ImageLocation",
-        "variableSetterType" : "ImageLocation"
-      },
-      "wrapper" : false
-    },
-    "InternalFailureException" : {
-      "c2jName" : "InternalFailureException",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>AWS IoT SiteWise can't process your request right now. Try again later.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : "InternalFailureException",
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.InternalFailureException",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ ],
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.exception",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "message" ],
-      "shapeName" : "InternalFailureException",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "InternalFailureException",
-        "variableName" : "internalFailureException",
-        "variableType" : "InternalFailureException",
-        "documentation" : null,
-        "simpleType" : "InternalFailureException",
-        "variableSetterType" : "InternalFailureException"
-      },
-      "wrapper" : false
-    },
-    "InvalidRequestException" : {
-      "c2jName" : "InvalidRequestException",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
-      },
-      "deprecated" : false,
-      "documentation" : "<p>The request isn't valid. This can occur if your request contains malformed JSON or unsupported characters. Check your request and try again.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : "InvalidRequestException",
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.InvalidRequestException",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ ],
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.exception",
-      "requestSignerAware" : false,
-      "requestSignerClassFqcn" : null,
-      "required" : [ "message" ],
-      "shapeName" : "InvalidRequestException",
-      "signerAware" : false,
-      "signerType" : null,
-      "unmarshaller" : null,
-      "variable" : {
-        "timestampFormat" : null,
-        "variableDeclarationType" : "InvalidRequestException",
-        "variableName" : "invalidRequestException",
-        "variableType" : "InvalidRequestException",
-        "documentation" : null,
-        "simpleType" : "InvalidRequestException",
-        "variableSetterType" : "InvalidRequestException"
-      },
-      "wrapper" : false
-    },
-    "LimitExceededException" : {
-      "c2jName" : "LimitExceededException",
-      "customization" : {
-        "artificialResultWrapper" : null,
-        "skipGeneratingMarshaller" : false,
-        "skipGeneratingModelClass" : false,
-        "skipGeneratingUnmarshaller" : false
+        },
+        "ResourceType" : {
+          "c2jName" : "resourceType",
+          "c2jShape" : "ResourceType",
+          "deprecated" : false,
+          "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "ResourceType",
+          "fluentSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
+          "fluentSetterMethodName" : "withResourceType",
+          "getterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@return The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
+          "getterMethodName" : "getResourceType",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "resourceType",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "resourceType",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "ResourceType",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
+          "setterMethodName" : "setResourceType",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceType",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "resourceType",
+            "variableType" : "String",
+            "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        }
       },
-      "deprecated" : false,
-      "documentation" : "<p>You've reached the limit for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
-      "endpointDiscoveryMembers" : null,
-      "enums" : null,
-      "errorCode" : "LimitExceededException",
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.LimitExceededException",
-      "hasHeaderMember" : false,
-      "hasPayloadMember" : false,
-      "hasRequiresLengthMember" : false,
-      "hasStatusCodeMember" : false,
-      "hasStreamingMember" : false,
-      "marshaller" : null,
-      "members" : [ ],
-      "membersAsMap" : { },
-      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "message" ],
-      "shapeName" : "LimitExceededException",
+      "required" : null,
+      "shapeName" : "ListAccessPoliciesRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "LimitExceededException",
-        "variableName" : "limitExceededException",
-        "variableType" : "LimitExceededException",
+        "variableDeclarationType" : "ListAccessPoliciesRequest",
+        "variableName" : "listAccessPoliciesRequest",
+        "variableType" : "ListAccessPoliciesRequest",
         "documentation" : null,
-        "simpleType" : "LimitExceededException",
-        "variableSetterType" : "LimitExceededException"
+        "simpleType" : "ListAccessPoliciesRequest",
+        "variableSetterType" : "ListAccessPoliciesRequest"
       },
       "wrapper" : false
     },
-    "ListAccessPoliciesRequest" : {
-      "c2jName" : "ListAccessPoliciesRequest",
+    "ListAccessPoliciesResult" : {
+      "c2jName" : "ListAccessPoliciesResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -57630,240 +63120,26 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.ListAccessPoliciesRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.ListAccessPoliciesResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
-      "marshaller" : {
-        "action" : "ListAccessPolicies",
-        "locationName" : null,
-        "requestUri" : "/access-policies",
-        "target" : null,
-        "verb" : "GET",
-        "xmlNameSpaceUri" : null
-      },
+      "marshaller" : null,
       "members" : [ {
-        "c2jName" : "identityType",
-        "c2jShape" : "IdentityType",
-        "deprecated" : false,
-        "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "IdentityType",
-        "fluentSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
-        "fluentSetterMethodName" : "withIdentityType",
-        "getterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@return The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
-        "getterMethodName" : "getIdentityType",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "identityType",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "identityType",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "IdentityType",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
-        "setterMethodName" : "setIdentityType",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "identityType",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "identityType",
-          "variableType" : "String",
-          "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "identityId",
-        "c2jShape" : "IdentityId",
-        "deprecated" : false,
-        "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withIdentityId",
-        "getterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@return The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
-        "getterMethodName" : "getIdentityId",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "identityId",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "identityId",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "IdentityId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
-        "setterMethodName" : "setIdentityId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "identityId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "identityId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "resourceType",
-        "c2jShape" : "ResourceType",
-        "deprecated" : false,
-        "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : "ResourceType",
-        "fluentSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
-        "fluentSetterMethodName" : "withResourceType",
-        "getterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@return The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
-        "getterMethodName" : "getResourceType",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "resourceType",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "resourceType",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ResourceType",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
-        "setterMethodName" : "setResourceType",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "resourceType",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "resourceType",
-          "variableType" : "String",
-          "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "resourceId",
-        "c2jShape" : "ID",
+        "c2jName" : "accessPolicySummaries",
+        "c2jShape" : "AccessPolicySummaries",
         "deprecated" : false,
-        "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
+        "documentation" : "<p>A list that summarizes each access policy.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withResourceId",
-        "getterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@return The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
-        "getterMethodName" : "getResourceId",
+        "fluentSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAccessPolicySummaries",
+        "getterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@return A list that summarizes each access policy.*/",
+        "getterMethodName" : "getAccessPolicySummaries",
         "getterModel" : {
-          "returnType" : "String",
+          "returnType" : "java.util.List<AccessPolicySummary>",
           "documentation" : null
         },
         "http" : {
@@ -57874,131 +63150,146 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "resourceId",
-          "queryString" : true,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "accessPolicySummaries",
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "resourceId",
+          "unmarshallLocationName" : "accessPolicySummaries",
           "uri" : false
         },
         "idempotencyToken" : false,
         "isBinary" : false,
         "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "ResourceId",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
-        "setterMethodName" : "setResourceId",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "resourceId",
-          "variableType" : "String",
-          "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "resourceId",
-          "variableType" : "String",
-          "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
-        },
-        "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "iamArn",
-        "c2jShape" : "ARN",
-        "deprecated" : false,
-        "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withIamArn",
-        "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
-        "getterMethodName" : "getIamArn",
-        "getterModel" : {
-          "returnType" : "String",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "iamArn",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "iamArn",
-          "uri" : false
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AccessPolicySummary",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AccessPolicySummary",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AccessPolicySummary",
+              "variableName" : "member",
+              "variableType" : "AccessPolicySummary",
+              "documentation" : "",
+              "simpleType" : "AccessPolicySummary",
+              "variableSetterType" : "AccessPolicySummary"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AccessPolicySummary",
+              "variableName" : "member",
+              "variableType" : "AccessPolicySummary",
+              "documentation" : "",
+              "simpleType" : "AccessPolicySummary",
+              "variableSetterType" : "AccessPolicySummary"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AccessPolicySummary",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AccessPolicySummary",
+          "templateImplType" : "java.util.ArrayList<AccessPolicySummary>",
+          "templateType" : "java.util.List<AccessPolicySummary>"
         },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
         "map" : false,
         "mapModel" : null,
-        "marshallingTargetClass" : "String",
-        "marshallingType" : "STRING",
-        "name" : "IamArn",
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AccessPolicySummaries",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
-        "setterMethodName" : "setIamArn",
+        "setterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.*/",
+        "setterMethodName" : "setAccessPolicySummaries",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "iamArn",
-          "variableType" : "String",
+          "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
+          "variableName" : "accessPolicySummaries",
+          "variableType" : "java.util.List<AccessPolicySummary>",
           "documentation" : "",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "simpleType" : "List<AccessPolicySummary>",
+          "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
-        "simple" : true,
+        "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccessPolicySummaries(java.util.Collection)} or {@link #withAccessPolicySummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "String",
-          "variableName" : "iamArn",
-          "variableType" : "String",
-          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
-          "simpleType" : "String",
-          "variableSetterType" : "String"
+          "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
+          "variableName" : "accessPolicySummaries",
+          "variableType" : "java.util.List<AccessPolicySummary>",
+          "documentation" : "<p>A list that summarizes each access policy.</p>",
+          "simpleType" : "List<AccessPolicySummary>",
+          "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
         },
         "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "nextToken",
         "c2jShape" : "NextToken",
         "deprecated" : false,
-        "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
+        "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withNextToken",
-        "getterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@return The token to be used for the next set of paginated results.*/",
+        "getterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@return The token for the next set of results, or null if there are no additional results.*/",
         "getterMethodName" : "getNextToken",
         "getterModel" : {
           "returnType" : "String",
@@ -58012,10 +63303,10 @@
           "header" : false,
           "isPayload" : false,
           "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
           "marshallLocationName" : "nextToken",
-          "queryString" : true,
+          "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
           "unmarshallLocationName" : "nextToken",
@@ -58032,7 +63323,7 @@
         "marshallingType" : "STRING",
         "name" : "NextToken",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.*/",
+        "setterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.*/",
         "setterMethodName" : "setNextToken",
         "setterModel" : {
           "timestampFormat" : null,
@@ -58047,101 +63338,32 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "nextToken",
           "variableType" : "String",
-          "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
+          "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
         "xmlNameSpaceUri" : null
-      }, {
-        "c2jName" : "maxResults",
-        "c2jShape" : "MaxResults",
-        "deprecated" : false,
-        "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
-        "endpointDiscoveryId" : false,
-        "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withMaxResults",
-        "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
-        "getterMethodName" : "getMaxResults",
-        "getterModel" : {
-          "returnType" : "Integer",
-          "documentation" : null
-        },
-        "http" : {
-          "additionalMarshallingPath" : null,
-          "additionalUnmarshallingPath" : null,
-          "flattened" : false,
-          "greedy" : false,
-          "header" : false,
-          "isPayload" : false,
-          "isStreaming" : false,
-          "location" : "querystring",
-          "marshallLocation" : "QUERY_PARAM",
-          "marshallLocationName" : "maxResults",
-          "queryString" : true,
-          "requiresLength" : false,
-          "statusCode" : false,
-          "unmarshallLocationName" : "maxResults",
-          "uri" : false
-        },
-        "idempotencyToken" : false,
-        "isBinary" : false,
-        "jsonValue" : false,
-        "list" : false,
-        "listModel" : null,
-        "map" : false,
-        "mapModel" : null,
-        "marshallingTargetClass" : "Integer",
-        "marshallingType" : "INTEGER",
-        "name" : "MaxResults",
-        "sensitive" : false,
-        "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
-        "setterMethodName" : "setMaxResults",
-        "setterModel" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Integer",
-          "variableName" : "maxResults",
-          "variableType" : "Integer",
-          "documentation" : "",
-          "simpleType" : "Integer",
-          "variableSetterType" : "Integer"
-        },
-        "shouldEmitLegacyEnumSetter" : false,
-        "shouldFullyQualify" : false,
-        "simple" : true,
-        "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "variable" : {
-          "timestampFormat" : null,
-          "variableDeclarationType" : "Integer",
-          "variableName" : "maxResults",
-          "variableType" : "Integer",
-          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
-          "simpleType" : "Integer",
-          "variableSetterType" : "Integer"
-        },
-        "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "IamArn" : {
-          "c2jName" : "iamArn",
-          "c2jShape" : "ARN",
+        "AccessPolicySummaries" : {
+          "c2jName" : "accessPolicySummaries",
+          "c2jShape" : "AccessPolicySummaries",
           "deprecated" : false,
-          "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
+          "documentation" : "<p>A list that summarizes each access policy.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withIamArn",
-          "getterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@return The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
-          "getterMethodName" : "getIamArn",
+          "fluentSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAccessPolicySummaries",
+          "getterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@return A list that summarizes each access policy.*/",
+          "getterMethodName" : "getAccessPolicySummaries",
           "getterModel" : {
-            "returnType" : "String",
+            "returnType" : "java.util.List<AccessPolicySummary>",
             "documentation" : null
           },
           "http" : {
@@ -58152,64 +63374,148 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "iamArn",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "accessPolicySummaries",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "iamArn",
+            "unmarshallLocationName" : "accessPolicySummaries",
             "uri" : false
           },
           "idempotencyToken" : false,
           "isBinary" : false,
           "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AccessPolicySummary",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AccessPolicySummary",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AccessPolicySummary",
+                "variableName" : "member",
+                "variableType" : "AccessPolicySummary",
+                "documentation" : "",
+                "simpleType" : "AccessPolicySummary",
+                "variableSetterType" : "AccessPolicySummary"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AccessPolicySummary",
+                "variableName" : "member",
+                "variableType" : "AccessPolicySummary",
+                "documentation" : "",
+                "simpleType" : "AccessPolicySummary",
+                "variableSetterType" : "AccessPolicySummary"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AccessPolicySummary",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AccessPolicySummary",
+            "templateImplType" : "java.util.ArrayList<AccessPolicySummary>",
+            "templateType" : "java.util.List<AccessPolicySummary>"
+          },
           "map" : false,
           "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "IamArn",
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AccessPolicySummaries",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.*/",
-          "setterMethodName" : "setIamArn",
+          "setterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.*/",
+          "setterMethodName" : "setAccessPolicySummaries",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "iamArn",
-            "variableType" : "String",
+            "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
+            "variableName" : "accessPolicySummaries",
+            "variableType" : "java.util.List<AccessPolicySummary>",
             "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "simpleType" : "List<AccessPolicySummary>",
+            "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
-          "simple" : true,
+          "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>\n@param iamArn The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccessPolicySummaries(java.util.Collection)} or {@link #withAccessPolicySummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "iamArn",
-            "variableType" : "String",
-            "documentation" : "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>. This parameter is required if you specify <code>IAM</code> for <code>identityType</code>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
+            "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
+            "variableName" : "accessPolicySummaries",
+            "variableType" : "java.util.List<AccessPolicySummary>",
+            "documentation" : "<p>A list that summarizes each access policy.</p>",
+            "simpleType" : "List<AccessPolicySummary>",
+            "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
           },
           "xmlNameSpaceUri" : null
         },
-        "IdentityId" : {
-          "c2jName" : "identityId",
-          "c2jShape" : "IdentityId",
+        "NextToken" : {
+          "c2jName" : "nextToken",
+          "c2jShape" : "NextToken",
           "deprecated" : false,
-          "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
+          "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withIdentityId",
-          "getterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@return The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
-          "getterMethodName" : "getIdentityId",
+          "fluentSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withNextToken",
+          "getterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@return The token for the next set of results, or null if there are no additional results.*/",
+          "getterMethodName" : "getNextToken",
           "getterModel" : {
             "returnType" : "String",
             "documentation" : null
@@ -58222,13 +63528,13 @@
             "header" : false,
             "isPayload" : false,
             "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "identityId",
-            "queryString" : true,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "nextToken",
+            "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "identityId",
+            "unmarshallLocationName" : "nextToken",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -58240,14 +63546,14 @@
           "mapModel" : null,
           "marshallingTargetClass" : "String",
           "marshallingType" : "STRING",
-          "name" : "IdentityId",
+          "name" : "NextToken",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.*/",
-          "setterMethodName" : "setIdentityId",
+          "setterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.*/",
+          "setterMethodName" : "setNextToken",
           "setterModel" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "identityId",
+            "variableName" : "nextToken",
             "variableType" : "String",
             "documentation" : "",
             "simpleType" : "String",
@@ -58257,88 +63563,208 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>\n@param identityId The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The token for the next set of results, or null if there are no additional results.</p>\n@param nextToken The token for the next set of results, or null if there are no additional results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
-            "variableName" : "identityId",
+            "variableName" : "nextToken",
             "variableType" : "String",
-            "documentation" : "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or <code>GROUP</code> for <code>identityType</code>.</p>",
+            "documentation" : "<p>The token for the next set of results, or null if there are no additional results.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        }
+      },
+      "packageName" : "com.amazonaws.services.iotsitewise.response",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "accessPolicySummaries" ],
+      "shapeName" : "ListAccessPoliciesResult",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "ListAccessPoliciesResult",
+        "variableName" : "listAccessPoliciesResult",
+        "variableType" : "ListAccessPoliciesResult",
+        "documentation" : null,
+        "simpleType" : "ListAccessPoliciesResult",
+        "variableSetterType" : "ListAccessPoliciesResult"
+      },
+      "wrapper" : false
+    },
+    "ListAssetModelsRequest" : {
+      "c2jName" : "ListAssetModelsRequest",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.ListAssetModelsRequest",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : {
+        "action" : "ListAssetModels",
+        "locationName" : null,
+        "requestUri" : "/asset-models",
+        "target" : null,
+        "verb" : "GET",
+        "xmlNameSpaceUri" : null
+      },
+      "members" : [ {
+        "c2jName" : "nextToken",
+        "c2jShape" : "NextToken",
+        "deprecated" : false,
+        "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withNextToken",
+        "getterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@return The token to be used for the next set of paginated results.*/",
+        "getterMethodName" : "getNextToken",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
         },
-        "IdentityType" : {
-          "c2jName" : "identityType",
-          "c2jShape" : "IdentityType",
-          "deprecated" : false,
-          "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "IdentityType",
-          "fluentSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
-          "fluentSetterMethodName" : "withIdentityType",
-          "getterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@return The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
-          "getterMethodName" : "getIdentityType",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "identityType",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "identityType",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "IdentityType",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@see IdentityType*/",
-          "setterMethodName" : "setIdentityType",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "identityType",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>\n@param identityType The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see IdentityType*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "identityType",
-            "variableType" : "String",
-            "documentation" : "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required if you specify <code>identityId</code>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "nextToken",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "nextToken",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "NextToken",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.*/",
+        "setterMethodName" : "setNextToken",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "nextToken",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The token to be used for the next set of paginated results.</p>\n@param nextToken The token to be used for the next set of paginated results.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "nextToken",
+          "variableType" : "String",
+          "documentation" : "<p>The token to be used for the next set of paginated results.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "maxResults",
+        "c2jShape" : "MaxResults",
+        "deprecated" : false,
+        "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withMaxResults",
+        "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "getterMethodName" : "getMaxResults",
+        "getterModel" : {
+          "returnType" : "Integer",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "maxResults",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "maxResults",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "Integer",
+        "marshallingType" : "INTEGER",
+        "name" : "MaxResults",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "setterMethodName" : "setMaxResults",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Integer",
+          "variableName" : "maxResults",
+          "variableType" : "Integer",
+          "documentation" : "",
+          "simpleType" : "Integer",
+          "variableSetterType" : "Integer"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "Integer",
+          "variableName" : "maxResults",
+          "variableType" : "Integer",
+          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+          "simpleType" : "Integer",
+          "variableSetterType" : "Integer"
         },
+        "xmlNameSpaceUri" : null
+      } ],
+      "membersAsMap" : {
         "MaxResults" : {
           "c2jName" : "maxResults",
           "c2jShape" : "MaxResults",
@@ -58478,169 +63904,29 @@
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
-        },
-        "ResourceId" : {
-          "c2jName" : "resourceId",
-          "c2jShape" : "ID",
-          "deprecated" : false,
-          "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withResourceId",
-          "getterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@return The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
-          "getterMethodName" : "getResourceId",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "resourceId",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "resourceId",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ResourceId",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.*/",
-          "setterMethodName" : "setResourceId",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "resourceId",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>\n@param resourceId The ID of the resource. This parameter is required if you specify <code>resourceType</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "resourceId",
-            "variableType" : "String",
-            "documentation" : "<p>The ID of the resource. This parameter is required if you specify <code>resourceType</code>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
-        },
-        "ResourceType" : {
-          "c2jName" : "resourceType",
-          "c2jShape" : "ResourceType",
-          "deprecated" : false,
-          "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
-          "endpointDiscoveryId" : false,
-          "enumType" : "ResourceType",
-          "fluentSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
-          "fluentSetterMethodName" : "withResourceType",
-          "getterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@return The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
-          "getterMethodName" : "getResourceType",
-          "getterModel" : {
-            "returnType" : "String",
-            "documentation" : null
-          },
-          "http" : {
-            "additionalMarshallingPath" : null,
-            "additionalUnmarshallingPath" : null,
-            "flattened" : false,
-            "greedy" : false,
-            "header" : false,
-            "isPayload" : false,
-            "isStreaming" : false,
-            "location" : "querystring",
-            "marshallLocation" : "QUERY_PARAM",
-            "marshallLocationName" : "resourceType",
-            "queryString" : true,
-            "requiresLength" : false,
-            "statusCode" : false,
-            "unmarshallLocationName" : "resourceType",
-            "uri" : false
-          },
-          "idempotencyToken" : false,
-          "isBinary" : false,
-          "jsonValue" : false,
-          "list" : false,
-          "listModel" : null,
-          "map" : false,
-          "mapModel" : null,
-          "marshallingTargetClass" : "String",
-          "marshallingType" : "STRING",
-          "name" : "ResourceType",
-          "sensitive" : false,
-          "setterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@see ResourceType*/",
-          "setterMethodName" : "setResourceType",
-          "setterModel" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "resourceType",
-            "variableType" : "String",
-            "documentation" : "",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "shouldEmitLegacyEnumSetter" : false,
-          "shouldFullyQualify" : false,
-          "simple" : true,
-          "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>\n@param resourceType The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ResourceType*/",
-          "variable" : {
-            "timestampFormat" : null,
-            "variableDeclarationType" : "String",
-            "variableName" : "resourceType",
-            "variableType" : "String",
-            "documentation" : "<p>The type of resource (portal or project). This parameter is required if you specify <code>resourceId</code>.</p>",
-            "simpleType" : "String",
-            "variableSetterType" : "String"
-          },
-          "xmlNameSpaceUri" : null
         }
       },
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
       "required" : null,
-      "shapeName" : "ListAccessPoliciesRequest",
+      "shapeName" : "ListAssetModelsRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ListAccessPoliciesRequest",
-        "variableName" : "listAccessPoliciesRequest",
-        "variableType" : "ListAccessPoliciesRequest",
+        "variableDeclarationType" : "ListAssetModelsRequest",
+        "variableName" : "listAssetModelsRequest",
+        "variableType" : "ListAssetModelsRequest",
         "documentation" : null,
-        "simpleType" : "ListAccessPoliciesRequest",
-        "variableSetterType" : "ListAccessPoliciesRequest"
+        "simpleType" : "ListAssetModelsRequest",
+        "variableSetterType" : "ListAssetModelsRequest"
       },
       "wrapper" : false
     },
-    "ListAccessPoliciesResult" : {
-      "c2jName" : "ListAccessPoliciesResponse",
+    "ListAssetModelsResult" : {
+      "c2jName" : "ListAssetModelsResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -58652,7 +63938,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.ListAccessPoliciesResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.ListAssetModelsResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -58660,18 +63946,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "accessPolicySummaries",
-        "c2jShape" : "AccessPolicySummaries",
+        "c2jName" : "assetModelSummaries",
+        "c2jShape" : "AssetModelSummaries",
         "deprecated" : false,
-        "documentation" : "<p>A list that summarizes each access policy.</p>",
+        "documentation" : "<p>A list that summarizes each asset model.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAccessPolicySummaries",
-        "getterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@return A list that summarizes each access policy.*/",
-        "getterMethodName" : "getAccessPolicySummaries",
+        "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelSummaries",
+        "getterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@return A list that summarizes each asset model.*/",
+        "getterMethodName" : "getAssetModelSummaries",
         "getterModel" : {
-          "returnType" : "java.util.List<AccessPolicySummary>",
+          "returnType" : "java.util.List<AssetModelSummary>",
           "documentation" : null
         },
         "http" : {
@@ -58684,11 +63970,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "accessPolicySummaries",
+          "marshallLocationName" : "assetModelSummaries",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "accessPolicySummaries",
+          "unmarshallLocationName" : "assetModelSummaries",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -58700,7 +63986,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "AccessPolicySummary",
+            "c2jShape" : "AssetModelSummary",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -58710,7 +63996,7 @@
             "getterDocumentation" : "/**\n@return */",
             "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "AccessPolicySummary",
+              "returnType" : "AssetModelSummary",
               "documentation" : null
             },
             "http" : {
@@ -58745,12 +64031,12 @@
             "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AccessPolicySummary",
+              "variableDeclarationType" : "AssetModelSummary",
               "variableName" : "member",
-              "variableType" : "AccessPolicySummary",
+              "variableType" : "AssetModelSummary",
               "documentation" : "",
-              "simpleType" : "AccessPolicySummary",
-              "variableSetterType" : "AccessPolicySummary"
+              "simpleType" : "AssetModelSummary",
+              "variableSetterType" : "AssetModelSummary"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
@@ -58759,57 +64045,57 @@
             "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AccessPolicySummary",
+              "variableDeclarationType" : "AssetModelSummary",
               "variableName" : "member",
-              "variableType" : "AccessPolicySummary",
+              "variableType" : "AssetModelSummary",
               "documentation" : "",
-              "simpleType" : "AccessPolicySummary",
-              "variableSetterType" : "AccessPolicySummary"
+              "simpleType" : "AssetModelSummary",
+              "variableSetterType" : "AssetModelSummary"
             },
             "xmlNameSpaceUri" : null
           },
           "memberLocationName" : null,
-          "memberType" : "AccessPolicySummary",
+          "memberType" : "AssetModelSummary",
           "map" : false,
           "marshallNonAutoConstructedEmptyLists" : false,
           "memberAdditionalMarshallingPath" : null,
           "memberAdditionalUnmarshallingPath" : null,
           "sendEmptyQueryString" : false,
           "simple" : false,
-          "simpleType" : "AccessPolicySummary",
-          "templateImplType" : "java.util.ArrayList<AccessPolicySummary>",
-          "templateType" : "java.util.List<AccessPolicySummary>"
+          "simpleType" : "AssetModelSummary",
+          "templateImplType" : "java.util.ArrayList<AssetModelSummary>",
+          "templateType" : "java.util.List<AssetModelSummary>"
         },
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "List",
         "marshallingType" : "LIST",
-        "name" : "AccessPolicySummaries",
+        "name" : "AssetModelSummaries",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.*/",
-        "setterMethodName" : "setAccessPolicySummaries",
+        "setterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.*/",
+        "setterMethodName" : "setAssetModelSummaries",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
-          "variableName" : "accessPolicySummaries",
-          "variableType" : "java.util.List<AccessPolicySummary>",
+          "variableDeclarationType" : "java.util.List<AssetModelSummary>",
+          "variableName" : "assetModelSummaries",
+          "variableType" : "java.util.List<AssetModelSummary>",
           "documentation" : "",
-          "simpleType" : "List<AccessPolicySummary>",
-          "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
+          "simpleType" : "List<AssetModelSummary>",
+          "variableSetterType" : "java.util.Collection<AssetModelSummary>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccessPolicySummaries(java.util.Collection)} or {@link #withAccessPolicySummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelSummaries(java.util.Collection)} or {@link #withAssetModelSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
-          "variableName" : "accessPolicySummaries",
-          "variableType" : "java.util.List<AccessPolicySummary>",
-          "documentation" : "<p>A list that summarizes each access policy.</p>",
-          "simpleType" : "List<AccessPolicySummary>",
-          "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
+          "variableDeclarationType" : "java.util.List<AssetModelSummary>",
+          "variableName" : "assetModelSummaries",
+          "variableType" : "java.util.List<AssetModelSummary>",
+          "documentation" : "<p>A list that summarizes each asset model.</p>",
+          "simpleType" : "List<AssetModelSummary>",
+          "variableSetterType" : "java.util.Collection<AssetModelSummary>"
         },
         "xmlNameSpaceUri" : null
       }, {
@@ -58883,19 +64169,19 @@
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AccessPolicySummaries" : {
-          "c2jName" : "accessPolicySummaries",
-          "c2jShape" : "AccessPolicySummaries",
+        "AssetModelSummaries" : {
+          "c2jName" : "assetModelSummaries",
+          "c2jShape" : "AssetModelSummaries",
           "deprecated" : false,
-          "documentation" : "<p>A list that summarizes each access policy.</p>",
+          "documentation" : "<p>A list that summarizes each asset model.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAccessPolicySummaries",
-          "getterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@return A list that summarizes each access policy.*/",
-          "getterMethodName" : "getAccessPolicySummaries",
+          "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelSummaries",
+          "getterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@return A list that summarizes each asset model.*/",
+          "getterMethodName" : "getAssetModelSummaries",
           "getterModel" : {
-            "returnType" : "java.util.List<AccessPolicySummary>",
+            "returnType" : "java.util.List<AssetModelSummary>",
             "documentation" : null
           },
           "http" : {
@@ -58908,11 +64194,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "accessPolicySummaries",
+            "marshallLocationName" : "assetModelSummaries",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "accessPolicySummaries",
+            "unmarshallLocationName" : "assetModelSummaries",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -58924,7 +64210,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "AccessPolicySummary",
+              "c2jShape" : "AssetModelSummary",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -58934,7 +64220,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "AccessPolicySummary",
+                "returnType" : "AssetModelSummary",
                 "documentation" : null
               },
               "http" : {
@@ -58969,12 +64255,12 @@
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AccessPolicySummary",
+                "variableDeclarationType" : "AssetModelSummary",
                 "variableName" : "member",
-                "variableType" : "AccessPolicySummary",
+                "variableType" : "AssetModelSummary",
                 "documentation" : "",
-                "simpleType" : "AccessPolicySummary",
-                "variableSetterType" : "AccessPolicySummary"
+                "simpleType" : "AssetModelSummary",
+                "variableSetterType" : "AssetModelSummary"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
@@ -58983,57 +64269,57 @@
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AccessPolicySummary",
+                "variableDeclarationType" : "AssetModelSummary",
                 "variableName" : "member",
-                "variableType" : "AccessPolicySummary",
+                "variableType" : "AssetModelSummary",
                 "documentation" : "",
-                "simpleType" : "AccessPolicySummary",
-                "variableSetterType" : "AccessPolicySummary"
+                "simpleType" : "AssetModelSummary",
+                "variableSetterType" : "AssetModelSummary"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "AccessPolicySummary",
+            "memberType" : "AssetModelSummary",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
             "simple" : false,
-            "simpleType" : "AccessPolicySummary",
-            "templateImplType" : "java.util.ArrayList<AccessPolicySummary>",
-            "templateType" : "java.util.List<AccessPolicySummary>"
+            "simpleType" : "AssetModelSummary",
+            "templateImplType" : "java.util.ArrayList<AssetModelSummary>",
+            "templateType" : "java.util.List<AssetModelSummary>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "AccessPolicySummaries",
+          "name" : "AssetModelSummaries",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n@param accessPolicySummaries A list that summarizes each access policy.*/",
-          "setterMethodName" : "setAccessPolicySummaries",
+          "setterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.*/",
+          "setterMethodName" : "setAssetModelSummaries",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
-            "variableName" : "accessPolicySummaries",
-            "variableType" : "java.util.List<AccessPolicySummary>",
+            "variableDeclarationType" : "java.util.List<AssetModelSummary>",
+            "variableName" : "assetModelSummaries",
+            "variableType" : "java.util.List<AssetModelSummary>",
             "documentation" : "",
-            "simpleType" : "List<AccessPolicySummary>",
-            "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
+            "simpleType" : "List<AssetModelSummary>",
+            "variableSetterType" : "java.util.Collection<AssetModelSummary>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list that summarizes each access policy.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAccessPolicySummaries(java.util.Collection)} or {@link #withAccessPolicySummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param accessPolicySummaries A list that summarizes each access policy.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelSummaries(java.util.Collection)} or {@link #withAssetModelSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AccessPolicySummary>",
-            "variableName" : "accessPolicySummaries",
-            "variableType" : "java.util.List<AccessPolicySummary>",
-            "documentation" : "<p>A list that summarizes each access policy.</p>",
-            "simpleType" : "List<AccessPolicySummary>",
-            "variableSetterType" : "java.util.Collection<AccessPolicySummary>"
+            "variableDeclarationType" : "java.util.List<AssetModelSummary>",
+            "variableName" : "assetModelSummaries",
+            "variableType" : "java.util.List<AssetModelSummary>",
+            "documentation" : "<p>A list that summarizes each asset model.</p>",
+            "simpleType" : "List<AssetModelSummary>",
+            "variableSetterType" : "java.util.Collection<AssetModelSummary>"
           },
           "xmlNameSpaceUri" : null
         },
@@ -59111,8 +64397,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "accessPolicySummaries" ],
-      "shapeName" : "ListAccessPoliciesResult",
+      "required" : [ "assetModelSummaries" ],
+      "shapeName" : "ListAssetModelsResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -59121,17 +64407,17 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ListAccessPoliciesResult",
-        "variableName" : "listAccessPoliciesResult",
-        "variableType" : "ListAccessPoliciesResult",
+        "variableDeclarationType" : "ListAssetModelsResult",
+        "variableName" : "listAssetModelsResult",
+        "variableType" : "ListAssetModelsResult",
         "documentation" : null,
-        "simpleType" : "ListAccessPoliciesResult",
-        "variableSetterType" : "ListAccessPoliciesResult"
+        "simpleType" : "ListAssetModelsResult",
+        "variableSetterType" : "ListAssetModelsResult"
       },
       "wrapper" : false
     },
-    "ListAssetModelsRequest" : {
-      "c2jName" : "ListAssetModelsRequest",
+    "ListAssetRelationshipsRequest" : {
+      "c2jName" : "ListAssetRelationshipsRequest",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -59143,21 +64429,159 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.ListAssetModelsRequest",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.request.ListAssetRelationshipsRequest",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
       "hasStatusCodeMember" : false,
       "hasStreamingMember" : false,
       "marshaller" : {
-        "action" : "ListAssetModels",
+        "action" : "ListAssetRelationships",
         "locationName" : null,
-        "requestUri" : "/asset-models",
+        "requestUri" : "/assets/{assetId}/assetRelationships",
         "target" : null,
         "verb" : "GET",
         "xmlNameSpaceUri" : null
       },
       "members" : [ {
+        "c2jName" : "assetId",
+        "c2jShape" : "ID",
+        "deprecated" : false,
+        "documentation" : "<p>The ID of the asset.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetId",
+        "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+        "getterMethodName" : "getAssetId",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "uri",
+          "marshallLocation" : "PATH",
+          "marshallLocationName" : "assetId",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetId",
+          "uri" : true
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "AssetId",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+        "setterMethodName" : "setAssetId",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "assetId",
+          "variableType" : "String",
+          "documentation" : "<p>The ID of the asset.</p>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "traversalType",
+        "c2jShape" : "TraversalType",
+        "deprecated" : false,
+        "documentation" : "<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>",
+        "endpointDiscoveryId" : false,
+        "enumType" : "TraversalType",
+        "fluentSetterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see TraversalType*/",
+        "fluentSetterMethodName" : "withTraversalType",
+        "getterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@return The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@see TraversalType*/",
+        "getterMethodName" : "getTraversalType",
+        "getterModel" : {
+          "returnType" : "String",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : "querystring",
+          "marshallLocation" : "QUERY_PARAM",
+          "marshallLocationName" : "traversalType",
+          "queryString" : true,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "traversalType",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : false,
+        "listModel" : null,
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "String",
+        "marshallingType" : "STRING",
+        "name" : "TraversalType",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@see TraversalType*/",
+        "setterMethodName" : "setTraversalType",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "traversalType",
+          "variableType" : "String",
+          "documentation" : "",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : true,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see TraversalType*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "String",
+          "variableName" : "traversalType",
+          "variableType" : "String",
+          "documentation" : "<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>",
+          "simpleType" : "String",
+          "variableSetterType" : "String"
+        },
+        "xmlNameSpaceUri" : null
+      }, {
         "c2jName" : "nextToken",
         "c2jShape" : "NextToken",
         "deprecated" : false,
@@ -59230,12 +64654,12 @@
         "c2jName" : "maxResults",
         "c2jShape" : "MaxResults",
         "deprecated" : false,
-        "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+        "documentation" : "<p>The maximum number of results to be returned per paginated request.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMaxResults",
-        "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@return The maximum number of results to be returned per paginated request.*/",
         "getterMethodName" : "getMaxResults",
         "getterModel" : {
           "returnType" : "Integer",
@@ -59269,7 +64693,7 @@
         "marshallingType" : "INTEGER",
         "name" : "MaxResults",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+        "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.*/",
         "setterMethodName" : "setMaxResults",
         "setterModel" : {
           "timestampFormat" : null,
@@ -59284,29 +64708,99 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "Integer",
           "variableName" : "maxResults",
           "variableType" : "Integer",
-          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p>",
           "simpleType" : "Integer",
           "variableSetterType" : "Integer"
         },
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
+        "AssetId" : {
+          "c2jName" : "assetId",
+          "c2jShape" : "ID",
+          "deprecated" : false,
+          "documentation" : "<p>The ID of the asset.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetId",
+          "getterDocumentation" : "/**<p>The ID of the asset.</p>\n@return The ID of the asset.*/",
+          "getterMethodName" : "getAssetId",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "uri",
+            "marshallLocation" : "PATH",
+            "marshallLocationName" : "assetId",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetId",
+            "uri" : true
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "AssetId",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.*/",
+          "setterMethodName" : "setAssetId",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The ID of the asset.</p>\n@param assetId The ID of the asset.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "assetId",
+            "variableType" : "String",
+            "documentation" : "<p>The ID of the asset.</p>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
+        },
         "MaxResults" : {
           "c2jName" : "maxResults",
           "c2jShape" : "MaxResults",
           "deprecated" : false,
-          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+          "documentation" : "<p>The maximum number of results to be returned per paginated request.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMaxResults",
-          "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@return The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+          "getterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@return The maximum number of results to be returned per paginated request.*/",
           "getterMethodName" : "getMaxResults",
           "getterModel" : {
             "returnType" : "Integer",
@@ -59340,7 +64834,7 @@
           "marshallingType" : "INTEGER",
           "name" : "MaxResults",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50*/",
+          "setterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.*/",
           "setterMethodName" : "setMaxResults",
           "setterModel" : {
             "timestampFormat" : null,
@@ -59355,13 +64849,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>\n@param maxResults The maximum number of results to be returned per paginated request.</p> <p>Default: 50\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The maximum number of results to be returned per paginated request.</p>\n@param maxResults The maximum number of results to be returned per paginated request.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "Integer",
             "variableName" : "maxResults",
             "variableType" : "Integer",
-            "documentation" : "<p>The maximum number of results to be returned per paginated request.</p> <p>Default: 50</p>",
+            "documentation" : "<p>The maximum number of results to be returned per paginated request.</p>",
             "simpleType" : "Integer",
             "variableSetterType" : "Integer"
           },
@@ -59436,29 +64930,99 @@
             "variableSetterType" : "String"
           },
           "xmlNameSpaceUri" : null
+        },
+        "TraversalType" : {
+          "c2jName" : "traversalType",
+          "c2jShape" : "TraversalType",
+          "deprecated" : false,
+          "documentation" : "<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>",
+          "endpointDiscoveryId" : false,
+          "enumType" : "TraversalType",
+          "fluentSetterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see TraversalType*/",
+          "fluentSetterMethodName" : "withTraversalType",
+          "getterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@return The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@see TraversalType*/",
+          "getterMethodName" : "getTraversalType",
+          "getterModel" : {
+            "returnType" : "String",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : "querystring",
+            "marshallLocation" : "QUERY_PARAM",
+            "marshallLocationName" : "traversalType",
+            "queryString" : true,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "traversalType",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : false,
+          "listModel" : null,
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "String",
+          "marshallingType" : "STRING",
+          "name" : "TraversalType",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@see TraversalType*/",
+          "setterMethodName" : "setTraversalType",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "traversalType",
+            "variableType" : "String",
+            "documentation" : "",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : true,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>\n@param traversalType The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.\n@see TraversalType*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "String",
+            "variableName" : "traversalType",
+            "variableType" : "String",
+            "documentation" : "<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>",
+            "simpleType" : "String",
+            "variableSetterType" : "String"
+          },
+          "xmlNameSpaceUri" : null
         }
       },
       "packageName" : "com.amazonaws.services.iotsitewise.request",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : null,
-      "shapeName" : "ListAssetModelsRequest",
+      "required" : [ "assetId", "traversalType" ],
+      "shapeName" : "ListAssetRelationshipsRequest",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : null,
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ListAssetModelsRequest",
-        "variableName" : "listAssetModelsRequest",
-        "variableType" : "ListAssetModelsRequest",
+        "variableDeclarationType" : "ListAssetRelationshipsRequest",
+        "variableName" : "listAssetRelationshipsRequest",
+        "variableType" : "ListAssetRelationshipsRequest",
         "documentation" : null,
-        "simpleType" : "ListAssetModelsRequest",
-        "variableSetterType" : "ListAssetModelsRequest"
+        "simpleType" : "ListAssetRelationshipsRequest",
+        "variableSetterType" : "ListAssetRelationshipsRequest"
       },
       "wrapper" : false
     },
-    "ListAssetModelsResult" : {
-      "c2jName" : "ListAssetModelsResponse",
+    "ListAssetRelationshipsResult" : {
+      "c2jName" : "ListAssetRelationshipsResponse",
       "customization" : {
         "artificialResultWrapper" : null,
         "skipGeneratingMarshaller" : false,
@@ -59470,7 +65034,7 @@
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
-      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.ListAssetModelsResult",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.response.ListAssetRelationshipsResult",
       "hasHeaderMember" : false,
       "hasPayloadMember" : false,
       "hasRequiresLengthMember" : false,
@@ -59478,18 +65042,18 @@
       "hasStreamingMember" : false,
       "marshaller" : null,
       "members" : [ {
-        "c2jName" : "assetModelSummaries",
-        "c2jShape" : "AssetModelSummaries",
+        "c2jName" : "assetRelationshipSummaries",
+        "c2jShape" : "AssetRelationshipSummaries",
         "deprecated" : false,
-        "documentation" : "<p>A list that summarizes each asset model.</p>",
+        "documentation" : "<p>A list that summarizes each asset relationship.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-        "fluentSetterMethodName" : "withAssetModelSummaries",
-        "getterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@return A list that summarizes each asset model.*/",
-        "getterMethodName" : "getAssetModelSummaries",
+        "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetRelationshipSummaries",
+        "getterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@return A list that summarizes each asset relationship.*/",
+        "getterMethodName" : "getAssetRelationshipSummaries",
         "getterModel" : {
-          "returnType" : "java.util.List<AssetModelSummary>",
+          "returnType" : "java.util.List<AssetRelationshipSummary>",
           "documentation" : null
         },
         "http" : {
@@ -59502,11 +65066,11 @@
           "isStreaming" : false,
           "location" : null,
           "marshallLocation" : "PAYLOAD",
-          "marshallLocationName" : "assetModelSummaries",
+          "marshallLocationName" : "assetRelationshipSummaries",
           "queryString" : false,
           "requiresLength" : false,
           "statusCode" : false,
-          "unmarshallLocationName" : "assetModelSummaries",
+          "unmarshallLocationName" : "assetRelationshipSummaries",
           "uri" : false
         },
         "idempotencyToken" : false,
@@ -59518,7 +65082,7 @@
           "interfaceType" : "java.util.List",
           "listMemberModel" : {
             "c2jName" : "member",
-            "c2jShape" : "AssetModelSummary",
+            "c2jShape" : "AssetRelationshipSummary",
             "deprecated" : false,
             "documentation" : "",
             "endpointDiscoveryId" : false,
@@ -59528,7 +65092,7 @@
             "getterDocumentation" : "/**\n@return */",
             "getterMethodName" : "getMember",
             "getterModel" : {
-              "returnType" : "AssetModelSummary",
+              "returnType" : "AssetRelationshipSummary",
               "documentation" : null
             },
             "http" : {
@@ -59563,12 +65127,12 @@
             "setterMethodName" : "setMember",
             "setterModel" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelSummary",
+              "variableDeclarationType" : "AssetRelationshipSummary",
               "variableName" : "member",
-              "variableType" : "AssetModelSummary",
+              "variableType" : "AssetRelationshipSummary",
               "documentation" : "",
-              "simpleType" : "AssetModelSummary",
-              "variableSetterType" : "AssetModelSummary"
+              "simpleType" : "AssetRelationshipSummary",
+              "variableSetterType" : "AssetRelationshipSummary"
             },
             "shouldEmitLegacyEnumSetter" : false,
             "shouldFullyQualify" : false,
@@ -59577,57 +65141,57 @@
             "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
             "variable" : {
               "timestampFormat" : null,
-              "variableDeclarationType" : "AssetModelSummary",
+              "variableDeclarationType" : "AssetRelationshipSummary",
               "variableName" : "member",
-              "variableType" : "AssetModelSummary",
+              "variableType" : "AssetRelationshipSummary",
               "documentation" : "",
-              "simpleType" : "AssetModelSummary",
-              "variableSetterType" : "AssetModelSummary"
+              "simpleType" : "AssetRelationshipSummary",
+              "variableSetterType" : "AssetRelationshipSummary"
             },
             "xmlNameSpaceUri" : null
           },
           "memberLocationName" : null,
-          "memberType" : "AssetModelSummary",
+          "memberType" : "AssetRelationshipSummary",
           "map" : false,
           "marshallNonAutoConstructedEmptyLists" : false,
           "memberAdditionalMarshallingPath" : null,
           "memberAdditionalUnmarshallingPath" : null,
           "sendEmptyQueryString" : false,
           "simple" : false,
-          "simpleType" : "AssetModelSummary",
-          "templateImplType" : "java.util.ArrayList<AssetModelSummary>",
-          "templateType" : "java.util.List<AssetModelSummary>"
+          "simpleType" : "AssetRelationshipSummary",
+          "templateImplType" : "java.util.ArrayList<AssetRelationshipSummary>",
+          "templateType" : "java.util.List<AssetRelationshipSummary>"
         },
         "map" : false,
         "mapModel" : null,
         "marshallingTargetClass" : "List",
         "marshallingType" : "LIST",
-        "name" : "AssetModelSummaries",
+        "name" : "AssetRelationshipSummaries",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.*/",
-        "setterMethodName" : "setAssetModelSummaries",
+        "setterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.*/",
+        "setterMethodName" : "setAssetRelationshipSummaries",
         "setterModel" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelSummary>",
-          "variableName" : "assetModelSummaries",
-          "variableType" : "java.util.List<AssetModelSummary>",
+          "variableDeclarationType" : "java.util.List<AssetRelationshipSummary>",
+          "variableName" : "assetRelationshipSummaries",
+          "variableType" : "java.util.List<AssetRelationshipSummary>",
           "documentation" : "",
-          "simpleType" : "List<AssetModelSummary>",
-          "variableSetterType" : "java.util.Collection<AssetModelSummary>"
+          "simpleType" : "List<AssetRelationshipSummary>",
+          "variableSetterType" : "java.util.Collection<AssetRelationshipSummary>"
         },
         "shouldEmitLegacyEnumSetter" : false,
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelSummaries(java.util.Collection)} or {@link #withAssetModelSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetRelationshipSummaries(java.util.Collection)} or {@link #withAssetRelationshipSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
-          "variableDeclarationType" : "java.util.List<AssetModelSummary>",
-          "variableName" : "assetModelSummaries",
-          "variableType" : "java.util.List<AssetModelSummary>",
-          "documentation" : "<p>A list that summarizes each asset model.</p>",
-          "simpleType" : "List<AssetModelSummary>",
-          "variableSetterType" : "java.util.Collection<AssetModelSummary>"
+          "variableDeclarationType" : "java.util.List<AssetRelationshipSummary>",
+          "variableName" : "assetRelationshipSummaries",
+          "variableType" : "java.util.List<AssetRelationshipSummary>",
+          "documentation" : "<p>A list that summarizes each asset relationship.</p>",
+          "simpleType" : "List<AssetRelationshipSummary>",
+          "variableSetterType" : "java.util.Collection<AssetRelationshipSummary>"
         },
         "xmlNameSpaceUri" : null
       }, {
@@ -59701,19 +65265,19 @@
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
-        "AssetModelSummaries" : {
-          "c2jName" : "assetModelSummaries",
-          "c2jShape" : "AssetModelSummaries",
+        "AssetRelationshipSummaries" : {
+          "c2jName" : "assetRelationshipSummaries",
+          "c2jShape" : "AssetRelationshipSummaries",
           "deprecated" : false,
-          "documentation" : "<p>A list that summarizes each asset model.</p>",
+          "documentation" : "<p>A list that summarizes each asset relationship.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
-          "fluentSetterMethodName" : "withAssetModelSummaries",
-          "getterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@return A list that summarizes each asset model.*/",
-          "getterMethodName" : "getAssetModelSummaries",
+          "fluentSetterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetRelationshipSummaries",
+          "getterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@return A list that summarizes each asset relationship.*/",
+          "getterMethodName" : "getAssetRelationshipSummaries",
           "getterModel" : {
-            "returnType" : "java.util.List<AssetModelSummary>",
+            "returnType" : "java.util.List<AssetRelationshipSummary>",
             "documentation" : null
           },
           "http" : {
@@ -59726,11 +65290,11 @@
             "isStreaming" : false,
             "location" : null,
             "marshallLocation" : "PAYLOAD",
-            "marshallLocationName" : "assetModelSummaries",
+            "marshallLocationName" : "assetRelationshipSummaries",
             "queryString" : false,
             "requiresLength" : false,
             "statusCode" : false,
-            "unmarshallLocationName" : "assetModelSummaries",
+            "unmarshallLocationName" : "assetRelationshipSummaries",
             "uri" : false
           },
           "idempotencyToken" : false,
@@ -59742,7 +65306,7 @@
             "interfaceType" : "java.util.List",
             "listMemberModel" : {
               "c2jName" : "member",
-              "c2jShape" : "AssetModelSummary",
+              "c2jShape" : "AssetRelationshipSummary",
               "deprecated" : false,
               "documentation" : "",
               "endpointDiscoveryId" : false,
@@ -59752,7 +65316,7 @@
               "getterDocumentation" : "/**\n@return */",
               "getterMethodName" : "getMember",
               "getterModel" : {
-                "returnType" : "AssetModelSummary",
+                "returnType" : "AssetRelationshipSummary",
                 "documentation" : null
               },
               "http" : {
@@ -59787,12 +65351,12 @@
               "setterMethodName" : "setMember",
               "setterModel" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelSummary",
+                "variableDeclarationType" : "AssetRelationshipSummary",
                 "variableName" : "member",
-                "variableType" : "AssetModelSummary",
+                "variableType" : "AssetRelationshipSummary",
                 "documentation" : "",
-                "simpleType" : "AssetModelSummary",
-                "variableSetterType" : "AssetModelSummary"
+                "simpleType" : "AssetRelationshipSummary",
+                "variableSetterType" : "AssetRelationshipSummary"
               },
               "shouldEmitLegacyEnumSetter" : false,
               "shouldFullyQualify" : false,
@@ -59801,57 +65365,57 @@
               "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
               "variable" : {
                 "timestampFormat" : null,
-                "variableDeclarationType" : "AssetModelSummary",
+                "variableDeclarationType" : "AssetRelationshipSummary",
                 "variableName" : "member",
-                "variableType" : "AssetModelSummary",
+                "variableType" : "AssetRelationshipSummary",
                 "documentation" : "",
-                "simpleType" : "AssetModelSummary",
-                "variableSetterType" : "AssetModelSummary"
+                "simpleType" : "AssetRelationshipSummary",
+                "variableSetterType" : "AssetRelationshipSummary"
               },
               "xmlNameSpaceUri" : null
             },
             "memberLocationName" : null,
-            "memberType" : "AssetModelSummary",
+            "memberType" : "AssetRelationshipSummary",
             "map" : false,
             "marshallNonAutoConstructedEmptyLists" : false,
             "memberAdditionalMarshallingPath" : null,
             "memberAdditionalUnmarshallingPath" : null,
             "sendEmptyQueryString" : false,
             "simple" : false,
-            "simpleType" : "AssetModelSummary",
-            "templateImplType" : "java.util.ArrayList<AssetModelSummary>",
-            "templateType" : "java.util.List<AssetModelSummary>"
+            "simpleType" : "AssetRelationshipSummary",
+            "templateImplType" : "java.util.ArrayList<AssetRelationshipSummary>",
+            "templateType" : "java.util.List<AssetRelationshipSummary>"
           },
           "map" : false,
           "mapModel" : null,
           "marshallingTargetClass" : "List",
           "marshallingType" : "LIST",
-          "name" : "AssetModelSummaries",
+          "name" : "AssetRelationshipSummaries",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n@param assetModelSummaries A list that summarizes each asset model.*/",
-          "setterMethodName" : "setAssetModelSummaries",
+          "setterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.*/",
+          "setterMethodName" : "setAssetRelationshipSummaries",
           "setterModel" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelSummary>",
-            "variableName" : "assetModelSummaries",
-            "variableType" : "java.util.List<AssetModelSummary>",
+            "variableDeclarationType" : "java.util.List<AssetRelationshipSummary>",
+            "variableName" : "assetRelationshipSummaries",
+            "variableType" : "java.util.List<AssetRelationshipSummary>",
             "documentation" : "",
-            "simpleType" : "List<AssetModelSummary>",
-            "variableSetterType" : "java.util.Collection<AssetModelSummary>"
+            "simpleType" : "List<AssetRelationshipSummary>",
+            "variableSetterType" : "java.util.Collection<AssetRelationshipSummary>"
           },
           "shouldEmitLegacyEnumSetter" : false,
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list that summarizes each asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelSummaries(java.util.Collection)} or {@link #withAssetModelSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelSummaries A list that summarizes each asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list that summarizes each asset relationship.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetRelationshipSummaries(java.util.Collection)} or {@link #withAssetRelationshipSummaries(java.util.Collection)} if you want to override the existing values.</p>\n@param assetRelationshipSummaries A list that summarizes each asset relationship.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
-            "variableDeclarationType" : "java.util.List<AssetModelSummary>",
-            "variableName" : "assetModelSummaries",
-            "variableType" : "java.util.List<AssetModelSummary>",
-            "documentation" : "<p>A list that summarizes each asset model.</p>",
-            "simpleType" : "List<AssetModelSummary>",
-            "variableSetterType" : "java.util.Collection<AssetModelSummary>"
+            "variableDeclarationType" : "java.util.List<AssetRelationshipSummary>",
+            "variableName" : "assetRelationshipSummaries",
+            "variableType" : "java.util.List<AssetRelationshipSummary>",
+            "documentation" : "<p>A list that summarizes each asset relationship.</p>",
+            "simpleType" : "List<AssetRelationshipSummary>",
+            "variableSetterType" : "java.util.Collection<AssetRelationshipSummary>"
           },
           "xmlNameSpaceUri" : null
         },
@@ -59929,8 +65493,8 @@
       "packageName" : "com.amazonaws.services.iotsitewise.response",
       "requestSignerAware" : false,
       "requestSignerClassFqcn" : null,
-      "required" : [ "assetModelSummaries" ],
-      "shapeName" : "ListAssetModelsResult",
+      "required" : [ "assetRelationshipSummaries" ],
+      "shapeName" : "ListAssetRelationshipsResult",
       "signerAware" : false,
       "signerType" : null,
       "unmarshaller" : {
@@ -59939,12 +65503,12 @@
       },
       "variable" : {
         "timestampFormat" : null,
-        "variableDeclarationType" : "ListAssetModelsResult",
-        "variableName" : "listAssetModelsResult",
-        "variableType" : "ListAssetModelsResult",
+        "variableDeclarationType" : "ListAssetRelationshipsResult",
+        "variableName" : "listAssetRelationshipsResult",
+        "variableType" : "ListAssetRelationshipsResult",
         "documentation" : null,
-        "simpleType" : "ListAssetModelsResult",
-        "variableSetterType" : "ListAssetModelsResult"
+        "simpleType" : "ListAssetRelationshipsResult",
+        "variableSetterType" : "ListAssetRelationshipsResult"
       },
       "wrapper" : false
     },
@@ -69694,12 +75258,12 @@
         "c2jName" : "startUrl",
         "c2jShape" : "Url",
         "deprecated" : false,
-        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+        "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withStartUrl",
-        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+        "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
         "getterMethodName" : "getStartUrl",
         "getterModel" : {
           "returnType" : "String",
@@ -69733,7 +75297,7 @@
         "marshallingType" : "STRING",
         "name" : "StartUrl",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+        "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
         "setterMethodName" : "setStartUrl",
         "setterModel" : {
           "timestampFormat" : null,
@@ -69748,13 +75312,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "startUrl",
           "variableType" : "String",
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -70461,12 +76025,12 @@
           "c2jName" : "startUrl",
           "c2jShape" : "Url",
           "deprecated" : false,
-          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+          "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withStartUrl",
-          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+          "getterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@return The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
           "getterMethodName" : "getStartUrl",
           "getterModel" : {
             "returnType" : "String",
@@ -70500,7 +76064,7 @@
           "marshallingType" : "STRING",
           "name" : "StartUrl",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.*/",
+          "setterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.*/",
           "setterMethodName" : "setStartUrl",
           "setterModel" : {
             "timestampFormat" : null,
@@ -70515,13 +76079,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>\n@param startUrl The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "startUrl",
             "variableType" : "String",
-            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>",
+            "documentation" : "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -72585,6 +78149,9 @@
       }, {
         "name" : "BOOLEAN",
         "value" : "BOOLEAN"
+      }, {
+        "name" : "STRUCT",
+        "value" : "STRUCT"
       } ],
       "errorCode" : null,
       "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.PropertyDataType",
@@ -78024,6 +83591,53 @@
       },
       "wrapper" : false
     },
+    "TraversalType" : {
+      "c2jName" : "TraversalType",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "",
+      "endpointDiscoveryMembers" : null,
+      "enums" : [ {
+        "name" : "PATH_TO_ROOT",
+        "value" : "PATH_TO_ROOT"
+      } ],
+      "errorCode" : null,
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.enum.TraversalType",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : null,
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.enum",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : null,
+      "shapeName" : "TraversalType",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : {
+        "flattened" : false,
+        "resultWrapper" : null
+      },
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "TraversalType",
+        "variableName" : "traversalType",
+        "variableType" : "TraversalType",
+        "documentation" : null,
+        "simpleType" : "TraversalType",
+        "variableSetterType" : "TraversalType"
+      },
+      "wrapper" : false
+    },
     "TumblingWindow" : {
       "c2jName" : "TumblingWindow",
       "customization" : {
@@ -78208,6 +83822,47 @@
       },
       "wrapper" : false
     },
+    "UnauthorizedException" : {
+      "c2jName" : "UnauthorizedException",
+      "customization" : {
+        "artificialResultWrapper" : null,
+        "skipGeneratingMarshaller" : false,
+        "skipGeneratingModelClass" : false,
+        "skipGeneratingUnmarshaller" : false
+      },
+      "deprecated" : false,
+      "documentation" : "<p>You are not authorized.</p>",
+      "endpointDiscoveryMembers" : null,
+      "enums" : null,
+      "errorCode" : "UnauthorizedException",
+      "fullyQualifiedName" : "com.amazonaws.services.iotsitewise.exception.UnauthorizedException",
+      "hasHeaderMember" : false,
+      "hasPayloadMember" : false,
+      "hasRequiresLengthMember" : false,
+      "hasStatusCodeMember" : false,
+      "hasStreamingMember" : false,
+      "marshaller" : null,
+      "members" : [ ],
+      "membersAsMap" : { },
+      "packageName" : "com.amazonaws.services.iotsitewise.exception",
+      "requestSignerAware" : false,
+      "requestSignerClassFqcn" : null,
+      "required" : [ "message" ],
+      "shapeName" : "UnauthorizedException",
+      "signerAware" : false,
+      "signerType" : null,
+      "unmarshaller" : null,
+      "variable" : {
+        "timestampFormat" : null,
+        "variableDeclarationType" : "UnauthorizedException",
+        "variableName" : "unauthorizedException",
+        "variableType" : "UnauthorizedException",
+        "documentation" : null,
+        "simpleType" : "UnauthorizedException",
+        "variableSetterType" : "UnauthorizedException"
+      },
+      "wrapper" : false
+    },
     "UntagResourceRequest" : {
       "c2jName" : "UntagResourceRequest",
       "customization" : {
@@ -80075,6 +85730,159 @@
           "variableSetterType" : "java.util.Collection<AssetModelHierarchy>"
         },
         "xmlNameSpaceUri" : null
+      }, {
+        "c2jName" : "assetModelCompositeModels",
+        "c2jShape" : "AssetModelCompositeModels",
+        "deprecated" : false,
+        "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+        "endpointDiscoveryId" : false,
+        "enumType" : null,
+        "fluentSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterMethodName" : "withAssetModelCompositeModels",
+        "getterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@return The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+        "getterMethodName" : "getAssetModelCompositeModels",
+        "getterModel" : {
+          "returnType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : null
+        },
+        "http" : {
+          "additionalMarshallingPath" : null,
+          "additionalUnmarshallingPath" : null,
+          "flattened" : false,
+          "greedy" : false,
+          "header" : false,
+          "isPayload" : false,
+          "isStreaming" : false,
+          "location" : null,
+          "marshallLocation" : "PAYLOAD",
+          "marshallLocationName" : "assetModelCompositeModels",
+          "queryString" : false,
+          "requiresLength" : false,
+          "statusCode" : false,
+          "unmarshallLocationName" : "assetModelCompositeModels",
+          "uri" : false
+        },
+        "idempotencyToken" : false,
+        "isBinary" : false,
+        "jsonValue" : false,
+        "list" : true,
+        "listModel" : {
+          "implType" : "java.util.ArrayList",
+          "interfaceType" : "java.util.List",
+          "listMemberModel" : {
+            "c2jName" : "member",
+            "c2jShape" : "AssetModelCompositeModel",
+            "deprecated" : false,
+            "documentation" : "",
+            "endpointDiscoveryId" : false,
+            "enumType" : null,
+            "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "fluentSetterMethodName" : "withMember",
+            "getterDocumentation" : "/**\n@return */",
+            "getterMethodName" : "getMember",
+            "getterModel" : {
+              "returnType" : "AssetModelCompositeModel",
+              "documentation" : null
+            },
+            "http" : {
+              "additionalMarshallingPath" : null,
+              "additionalUnmarshallingPath" : null,
+              "flattened" : false,
+              "greedy" : false,
+              "header" : false,
+              "isPayload" : false,
+              "isStreaming" : false,
+              "location" : null,
+              "marshallLocation" : "PAYLOAD",
+              "marshallLocationName" : "member",
+              "queryString" : false,
+              "requiresLength" : false,
+              "statusCode" : false,
+              "unmarshallLocationName" : "member",
+              "uri" : false
+            },
+            "idempotencyToken" : false,
+            "isBinary" : false,
+            "jsonValue" : false,
+            "list" : false,
+            "listModel" : null,
+            "map" : false,
+            "mapModel" : null,
+            "marshallingTargetClass" : "StructuredPojo",
+            "marshallingType" : "STRUCTURED",
+            "name" : "Member",
+            "sensitive" : false,
+            "setterDocumentation" : "/**\n@param member */",
+            "setterMethodName" : "setMember",
+            "setterModel" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModel",
+              "variableSetterType" : "AssetModelCompositeModel"
+            },
+            "shouldEmitLegacyEnumSetter" : false,
+            "shouldFullyQualify" : false,
+            "simple" : false,
+            "unmarshallingType" : null,
+            "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+            "variable" : {
+              "timestampFormat" : null,
+              "variableDeclarationType" : "AssetModelCompositeModel",
+              "variableName" : "member",
+              "variableType" : "AssetModelCompositeModel",
+              "documentation" : "",
+              "simpleType" : "AssetModelCompositeModel",
+              "variableSetterType" : "AssetModelCompositeModel"
+            },
+            "xmlNameSpaceUri" : null
+          },
+          "memberLocationName" : null,
+          "memberType" : "AssetModelCompositeModel",
+          "map" : false,
+          "marshallNonAutoConstructedEmptyLists" : false,
+          "memberAdditionalMarshallingPath" : null,
+          "memberAdditionalUnmarshallingPath" : null,
+          "sendEmptyQueryString" : false,
+          "simple" : false,
+          "simpleType" : "AssetModelCompositeModel",
+          "templateImplType" : "java.util.ArrayList<AssetModelCompositeModel>",
+          "templateType" : "java.util.List<AssetModelCompositeModel>"
+        },
+        "map" : false,
+        "mapModel" : null,
+        "marshallingTargetClass" : "List",
+        "marshallingType" : "LIST",
+        "name" : "AssetModelCompositeModels",
+        "sensitive" : false,
+        "setterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+        "setterMethodName" : "setAssetModelCompositeModels",
+        "setterModel" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : "",
+          "simpleType" : "List<AssetModelCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+        },
+        "shouldEmitLegacyEnumSetter" : false,
+        "shouldFullyQualify" : false,
+        "simple" : false,
+        "unmarshallingType" : null,
+        "varargSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "variable" : {
+          "timestampFormat" : null,
+          "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+          "variableName" : "assetModelCompositeModels",
+          "variableType" : "java.util.List<AssetModelCompositeModel>",
+          "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+          "simpleType" : "List<AssetModelCompositeModel>",
+          "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+        },
+        "xmlNameSpaceUri" : null
       }, {
         "c2jName" : "clientToken",
         "c2jShape" : "ClientToken",
@@ -80146,6 +85954,160 @@
         "xmlNameSpaceUri" : null
       } ],
       "membersAsMap" : {
+        "AssetModelCompositeModels" : {
+          "c2jName" : "assetModelCompositeModels",
+          "c2jShape" : "AssetModelCompositeModels",
+          "deprecated" : false,
+          "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+          "endpointDiscoveryId" : false,
+          "enumType" : null,
+          "fluentSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterMethodName" : "withAssetModelCompositeModels",
+          "getterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@return The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+          "getterMethodName" : "getAssetModelCompositeModels",
+          "getterModel" : {
+            "returnType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : null
+          },
+          "http" : {
+            "additionalMarshallingPath" : null,
+            "additionalUnmarshallingPath" : null,
+            "flattened" : false,
+            "greedy" : false,
+            "header" : false,
+            "isPayload" : false,
+            "isStreaming" : false,
+            "location" : null,
+            "marshallLocation" : "PAYLOAD",
+            "marshallLocationName" : "assetModelCompositeModels",
+            "queryString" : false,
+            "requiresLength" : false,
+            "statusCode" : false,
+            "unmarshallLocationName" : "assetModelCompositeModels",
+            "uri" : false
+          },
+          "idempotencyToken" : false,
+          "isBinary" : false,
+          "jsonValue" : false,
+          "list" : true,
+          "listModel" : {
+            "implType" : "java.util.ArrayList",
+            "interfaceType" : "java.util.List",
+            "listMemberModel" : {
+              "c2jName" : "member",
+              "c2jShape" : "AssetModelCompositeModel",
+              "deprecated" : false,
+              "documentation" : "",
+              "endpointDiscoveryId" : false,
+              "enumType" : null,
+              "fluentSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "fluentSetterMethodName" : "withMember",
+              "getterDocumentation" : "/**\n@return */",
+              "getterMethodName" : "getMember",
+              "getterModel" : {
+                "returnType" : "AssetModelCompositeModel",
+                "documentation" : null
+              },
+              "http" : {
+                "additionalMarshallingPath" : null,
+                "additionalUnmarshallingPath" : null,
+                "flattened" : false,
+                "greedy" : false,
+                "header" : false,
+                "isPayload" : false,
+                "isStreaming" : false,
+                "location" : null,
+                "marshallLocation" : "PAYLOAD",
+                "marshallLocationName" : "member",
+                "queryString" : false,
+                "requiresLength" : false,
+                "statusCode" : false,
+                "unmarshallLocationName" : "member",
+                "uri" : false
+              },
+              "idempotencyToken" : false,
+              "isBinary" : false,
+              "jsonValue" : false,
+              "list" : false,
+              "listModel" : null,
+              "map" : false,
+              "mapModel" : null,
+              "marshallingTargetClass" : "StructuredPojo",
+              "marshallingType" : "STRUCTURED",
+              "name" : "Member",
+              "sensitive" : false,
+              "setterDocumentation" : "/**\n@param member */",
+              "setterMethodName" : "setMember",
+              "setterModel" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModel",
+                "variableSetterType" : "AssetModelCompositeModel"
+              },
+              "shouldEmitLegacyEnumSetter" : false,
+              "shouldFullyQualify" : false,
+              "simple" : false,
+              "unmarshallingType" : null,
+              "varargSetterDocumentation" : "/**\n@param member \n@return Returns a reference to this object so that method calls can be chained together.*/",
+              "variable" : {
+                "timestampFormat" : null,
+                "variableDeclarationType" : "AssetModelCompositeModel",
+                "variableName" : "member",
+                "variableType" : "AssetModelCompositeModel",
+                "documentation" : "",
+                "simpleType" : "AssetModelCompositeModel",
+                "variableSetterType" : "AssetModelCompositeModel"
+              },
+              "xmlNameSpaceUri" : null
+            },
+            "memberLocationName" : null,
+            "memberType" : "AssetModelCompositeModel",
+            "map" : false,
+            "marshallNonAutoConstructedEmptyLists" : false,
+            "memberAdditionalMarshallingPath" : null,
+            "memberAdditionalUnmarshallingPath" : null,
+            "sendEmptyQueryString" : false,
+            "simple" : false,
+            "simpleType" : "AssetModelCompositeModel",
+            "templateImplType" : "java.util.ArrayList<AssetModelCompositeModel>",
+            "templateType" : "java.util.List<AssetModelCompositeModel>"
+          },
+          "map" : false,
+          "mapModel" : null,
+          "marshallingTargetClass" : "List",
+          "marshallingType" : "LIST",
+          "name" : "AssetModelCompositeModels",
+          "sensitive" : false,
+          "setterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.*/",
+          "setterMethodName" : "setAssetModelCompositeModels",
+          "setterModel" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : "",
+            "simpleType" : "List<AssetModelCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+          },
+          "shouldEmitLegacyEnumSetter" : false,
+          "shouldFullyQualify" : false,
+          "simple" : false,
+          "unmarshallingType" : null,
+          "varargSetterDocumentation" : "/**<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAssetModelCompositeModels(java.util.Collection)} or {@link #withAssetModelCompositeModels(java.util.Collection)} if you want to override the existing values.</p>\n@param assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "variable" : {
+            "timestampFormat" : null,
+            "variableDeclarationType" : "java.util.List<AssetModelCompositeModel>",
+            "variableName" : "assetModelCompositeModels",
+            "variableType" : "java.util.List<AssetModelCompositeModel>",
+            "documentation" : "<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>",
+            "simpleType" : "List<AssetModelCompositeModel>",
+            "variableSetterType" : "java.util.Collection<AssetModelCompositeModel>"
+          },
+          "xmlNameSpaceUri" : null
+        },
         "AssetModelDescription" : {
           "c2jName" : "assetModelDescription",
           "c2jShape" : "Description",
diff --git a/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-model.json b/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-model.json
index 995f540b24b9..7c67f5fd59af 100644
--- a/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/iotsitewise-2019-12-02-model.json
@@ -84,7 +84,7 @@
         {"shape":"ServiceUnavailableException"},
         {"shape":"ConflictingOperationException"}
       ],
-      "documentation":"<p>Sends a list of asset property values to AWS IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html\">Ingesting data using the API</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>To identify an asset property, you must specify one of the following:</p> <ul> <li> <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p> </li> <li> <p>A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p> </li> </ul> <important> <p>With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 15 minutes in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the inclusive range of [-15, +5] minutes and returns a <code>TimestampOutOfRangeException</code> error.</p> <p>For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>, then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV.</p> </important> <p>AWS IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action\">BatchPutAssetPropertyValue authorization</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
+      "documentation":"<p>Sends a list of asset property values to AWS IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html\">Ingesting data using the API</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>To identify an asset property, you must specify one of the following:</p> <ul> <li> <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p> </li> <li> <p>A <code>propertyAlias</code>, which is a data stream alias (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p> </li> </ul> <important> <p>With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days in the past and no more than 5 minutes in the future. AWS IoT SiteWise rejects timestamps outside of the inclusive range of [-7 days, +5 minutes] and returns a <code>TimestampOutOfRangeException</code> error.</p> <p>For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>, then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV.</p> </important> <p>AWS IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action\">BatchPutAssetPropertyValue authorization</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
       "endpoint":{"hostPrefix":"data."}
     },
     "CreateAccessPolicy":{
@@ -205,23 +205,6 @@
       "documentation":"<p>Creates a portal, which can contain projects and dashboards. AWS IoT SiteWise Monitor uses AWS SSO or IAM to authenticate portal users and manage user permissions.</p> <note> <p>Before you can sign in to a new portal, you must add at least one identity to that portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins\">Adding or removing portal administrators</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> </note>",
       "endpoint":{"hostPrefix":"monitor."}
     },
-    "CreatePresignedPortalUrl":{
-      "name":"CreatePresignedPortalUrl",
-      "http":{
-        "method":"GET",
-        "requestUri":"/portals/{portalId}/presigned-url",
-        "responseCode":200
-      },
-      "input":{"shape":"CreatePresignedPortalUrlRequest"},
-      "output":{"shape":"CreatePresignedPortalUrlResponse"},
-      "errors":[
-        {"shape":"InvalidRequestException"},
-        {"shape":"InternalFailureException"},
-        {"shape":"ThrottlingException"}
-      ],
-      "documentation":"<p>Creates a pre-signed URL to a portal. Use this operation to create URLs to portals that use AWS Identity and Access Management (IAM) to authenticate users. An IAM user with access to a portal can call this API to get a URL to that portal. The URL contains an authentication token that lets the IAM user access the portal.</p>",
-      "endpoint":{"hostPrefix":"monitor."}
-    },
     "CreateProject":{
       "name":"CreateProject",
       "http":{
@@ -661,6 +644,23 @@
       "documentation":"<p>Retrieves a paginated list of summaries of all asset models.</p>",
       "endpoint":{"hostPrefix":"model."}
     },
+    "ListAssetRelationships":{
+      "name":"ListAssetRelationships",
+      "http":{
+        "method":"GET",
+        "requestUri":"/assets/{assetId}/assetRelationships"
+      },
+      "input":{"shape":"ListAssetRelationshipsRequest"},
+      "output":{"shape":"ListAssetRelationshipsResponse"},
+      "errors":[
+        {"shape":"InvalidRequestException"},
+        {"shape":"InternalFailureException"},
+        {"shape":"ResourceNotFoundException"},
+        {"shape":"ThrottlingException"}
+      ],
+      "documentation":"<p>Retrieves a paginated list of asset relationships for an asset. You can use this operation to identify an asset's root asset and all associated assets between that asset and its root.</p>",
+      "endpoint":{"hostPrefix":"model."}
+    },
     "ListAssets":{
       "name":"ListAssets",
       "http":{
@@ -791,7 +791,10 @@
         {"shape":"InvalidRequestException"},
         {"shape":"InternalFailureException"},
         {"shape":"ThrottlingException"},
-        {"shape":"ResourceNotFoundException"}
+        {"shape":"ResourceNotFoundException"},
+        {"shape":"ConflictingOperationException"},
+        {"shape":"LimitExceededException"},
+        {"shape":"UnauthorizedException"}
       ],
       "documentation":"<p>Retrieves the list of tags for an AWS IoT SiteWise resource.</p>"
     },
@@ -843,6 +846,9 @@
         {"shape":"InternalFailureException"},
         {"shape":"ThrottlingException"},
         {"shape":"ResourceNotFoundException"},
+        {"shape":"ConflictingOperationException"},
+        {"shape":"LimitExceededException"},
+        {"shape":"UnauthorizedException"},
         {"shape":"TooManyTagsException"}
       ],
       "documentation":"<p>Adds tags to an AWS IoT SiteWise resource. If a tag already exists for the resource, this operation updates the tag's value.</p>"
@@ -859,7 +865,10 @@
         {"shape":"InvalidRequestException"},
         {"shape":"InternalFailureException"},
         {"shape":"ThrottlingException"},
-        {"shape":"ResourceNotFoundException"}
+        {"shape":"ResourceNotFoundException"},
+        {"shape":"ConflictingOperationException"},
+        {"shape":"LimitExceededException"},
+        {"shape":"UnauthorizedException"}
       ],
       "documentation":"<p>Removes a tag from an AWS IoT SiteWise resource.</p>"
     },
@@ -1157,6 +1166,37 @@
       "max":1011,
       "min":1
     },
+    "AssetCompositeModel":{
+      "type":"structure",
+      "required":[
+        "name",
+        "type",
+        "properties"
+      ],
+      "members":{
+        "name":{
+          "shape":"Name",
+          "documentation":"<p>The name of the composite model.</p>"
+        },
+        "description":{
+          "shape":"Description",
+          "documentation":"<p>The description of the composite model.</p>"
+        },
+        "type":{
+          "shape":"Name",
+          "documentation":"<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>"
+        },
+        "properties":{
+          "shape":"AssetProperties",
+          "documentation":"<p>The asset properties that this composite model defines.</p>"
+        }
+      },
+      "documentation":"<p>Contains information about a composite model in an asset. This object contains the asset's properties that you define in the composite model.</p>"
+    },
+    "AssetCompositeModels":{
+      "type":"list",
+      "member":{"shape":"AssetCompositeModel"}
+    },
     "AssetErrorCode":{
       "type":"string",
       "enum":["INTERNAL_FAILURE"]
@@ -1204,10 +1244,84 @@
       },
       "documentation":"<p>Describes an asset hierarchy that contains a hierarchy's name and ID.</p>"
     },
+    "AssetHierarchyInfo":{
+      "type":"structure",
+      "members":{
+        "parentAssetId":{
+          "shape":"ID",
+          "documentation":"<p>The ID of the parent asset in this asset relationship.</p>"
+        },
+        "childAssetId":{
+          "shape":"ID",
+          "documentation":"<p>The ID of the child asset in this asset relationship.</p>"
+        }
+      },
+      "documentation":"<p>Contains information about a parent asset and a child asset that are related through an asset hierarchy.</p>"
+    },
     "AssetIDs":{
       "type":"list",
       "member":{"shape":"ID"}
     },
+    "AssetModelCompositeModel":{
+      "type":"structure",
+      "required":[
+        "name",
+        "type"
+      ],
+      "members":{
+        "name":{
+          "shape":"Name",
+          "documentation":"<p>The name of the composite model.</p>"
+        },
+        "description":{
+          "shape":"Description",
+          "documentation":"<p>The description of the composite model.</p>"
+        },
+        "type":{
+          "shape":"Name",
+          "documentation":"<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>"
+        },
+        "properties":{
+          "shape":"AssetModelProperties",
+          "documentation":"<p>The asset property definitions for this composite model.</p>"
+        }
+      },
+      "documentation":"<p>Contains information about a composite model in an asset model. This object contains the asset property definitions that you define in the composite model.</p>"
+    },
+    "AssetModelCompositeModelDefinition":{
+      "type":"structure",
+      "required":[
+        "name",
+        "type"
+      ],
+      "members":{
+        "name":{
+          "shape":"Name",
+          "documentation":"<p>The name of the composite model.</p>"
+        },
+        "description":{
+          "shape":"Description",
+          "documentation":"<p>The description of the composite model.</p>"
+        },
+        "type":{
+          "shape":"Name",
+          "documentation":"<p>The type of the composite model. For alarm composite models, this type is <code>AWS/ALARM</code>.</p>"
+        },
+        "properties":{
+          "shape":"AssetModelPropertyDefinitions",
+          "documentation":"<p>The asset property definitions for this composite model.</p>"
+        }
+      },
+      "documentation":"<p>Contains a composite model definition in an asset model. This composite model definition is applied to all assets created from the asset model.</p>"
+    },
+    "AssetModelCompositeModelDefinitions":{
+      "type":"list",
+      "member":{"shape":"AssetModelCompositeModelDefinition"}
+    },
+    "AssetModelCompositeModels":{
+      "type":"list",
+      "member":{"shape":"AssetModelCompositeModel"}
+    },
     "AssetModelHierarchies":{
       "type":"list",
       "member":{"shape":"AssetModelHierarchy"}
@@ -1280,6 +1394,10 @@
           "shape":"PropertyDataType",
           "documentation":"<p>The data type of the asset model property.</p>"
         },
+        "dataTypeSpec":{
+          "shape":"Name",
+          "documentation":"<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>"
+        },
         "unit":{
           "shape":"PropertyUnit",
           "documentation":"<p>The unit of the asset model property, such as <code>Newtons</code> or <code>RPM</code>.</p>"
@@ -1305,7 +1423,11 @@
         },
         "dataType":{
           "shape":"PropertyDataType",
-          "documentation":"<p>The data type of the property definition.</p>"
+          "documentation":"<p>The data type of the property definition.</p> <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to identify the type of the structure for this property.</p>"
+        },
+        "dataTypeSpec":{
+          "shape":"Name",
+          "documentation":"<p>The data type of the structure for this property. This parameter is required on properties that have the <code>STRUCT</code> data type.</p> <p>The options for this parameter depend on the type of the composite model in which you define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite models.</p>"
         },
         "unit":{
           "shape":"PropertyUnit",
@@ -1427,6 +1549,10 @@
           "shape":"PropertyDataType",
           "documentation":"<p>The data type of the asset property.</p>"
         },
+        "dataTypeSpec":{
+          "shape":"Name",
+          "documentation":"<p>The data type of the structure for this property. This parameter exists on properties that have the <code>STRUCT</code> data type.</p>"
+        },
         "unit":{
           "shape":"PropertyUnit",
           "documentation":"<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>"
@@ -1470,6 +1596,29 @@
       "type":"list",
       "member":{"shape":"AssetPropertyValue"}
     },
+    "AssetRelationshipSummaries":{
+      "type":"list",
+      "member":{"shape":"AssetRelationshipSummary"}
+    },
+    "AssetRelationshipSummary":{
+      "type":"structure",
+      "required":["relationshipType"],
+      "members":{
+        "hierarchyInfo":{
+          "shape":"AssetHierarchyInfo",
+          "documentation":"<p>The assets that are related through an asset hierarchy.</p> <p>This object is present if the <code>relationshipType</code> is <code>HIERARCHY</code>.</p>"
+        },
+        "relationshipType":{
+          "shape":"AssetRelationshipType",
+          "documentation":"<p>The relationship type of the assets in this relationship. This value is one of the following:</p> <ul> <li> <p> <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If you specify this relationship type, this asset relationship includes the <code>hierarchyInfo</code> object.</p> </li> </ul>"
+        }
+      },
+      "documentation":"<p>Contains information about assets that are related to one another.</p>"
+    },
+    "AssetRelationshipType":{
+      "type":"string",
+      "enum":["HIERARCHY"]
+    },
     "AssetState":{
       "type":"string",
       "enum":[
@@ -1804,7 +1953,7 @@
     },
     "CapabilityConfiguration":{
       "type":"string",
-      "max":204800,
+      "max":104857600,
       "min":1
     },
     "CapabilityNamespace":{
@@ -1827,6 +1976,26 @@
       "min":36,
       "pattern":"\\S{36,64}"
     },
+    "CompositeModelProperty":{
+      "type":"structure",
+      "required":[
+        "name",
+        "type",
+        "assetProperty"
+      ],
+      "members":{
+        "name":{
+          "shape":"Name",
+          "documentation":"<p>The name of the property.</p>"
+        },
+        "type":{
+          "shape":"Name",
+          "documentation":"<p>The type of the composite model that defines this property.</p>"
+        },
+        "assetProperty":{"shape":"Property"}
+      },
+      "documentation":"<p>Contains information about a composite model property on an asset.</p>"
+    },
     "ConfigurationErrorDetails":{
       "type":"structure",
       "required":[
@@ -1836,14 +2005,14 @@
       "members":{
         "code":{
           "shape":"ErrorCode",
-          "documentation":"<p/>"
+          "documentation":"<p>The error code.</p>"
         },
         "message":{
           "shape":"ErrorMessage",
-          "documentation":"<p/>"
+          "documentation":"<p>The error message.</p>"
         }
       },
-      "documentation":"<p/>"
+      "documentation":"<p>Contains the details of an AWS IoT SiteWise configuration error.</p>"
     },
     "ConfigurationState":{
       "type":"string",
@@ -1859,14 +2028,14 @@
       "members":{
         "state":{
           "shape":"ConfigurationState",
-          "documentation":"<p/>"
+          "documentation":"<p>The current state of the configuration.</p>"
         },
         "error":{
           "shape":"ConfigurationErrorDetails",
-          "documentation":"<p/>"
+          "documentation":"<p>Contains associated error information, if any.</p>"
         }
       },
-      "documentation":"<p/>"
+      "documentation":"<p>Contains current status information for the configuration.</p>"
     },
     "ConflictingOperationException":{
       "type":"structure",
@@ -1958,6 +2127,10 @@
           "shape":"AssetModelHierarchyDefinitions",
           "documentation":"<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
         },
+        "assetModelCompositeModels":{
+          "shape":"AssetModelCompositeModelDefinitions",
+          "documentation":"<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>"
+        },
         "clientToken":{
           "shape":"ClientToken",
           "documentation":"<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
@@ -2168,7 +2341,7 @@
         },
         "portalAuthMode":{
           "shape":"AuthMode",
-          "documentation":"<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>"
+          "documentation":"<p>The service to use to authenticate users to the portal. Choose from the following options:</p> <ul> <li> <p> <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than the China Regions.</p> </li> <li> <p> <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage user permissions. This option is only available in the China Regions.</p> </li> </ul> <p>You can't change this value after you create a portal.</p> <p>Default: <code>SSO</code> </p>"
         }
       }
     },
@@ -2192,7 +2365,7 @@
         },
         "portalStartUrl":{
           "shape":"Url",
-          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>"
+          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>"
         },
         "portalStatus":{
           "shape":"PortalStatus",
@@ -2204,34 +2377,6 @@
         }
       }
     },
-    "CreatePresignedPortalUrlRequest":{
-      "type":"structure",
-      "required":["portalId"],
-      "members":{
-        "portalId":{
-          "shape":"ID",
-          "documentation":"<p>The ID of the portal to access.</p>",
-          "location":"uri",
-          "locationName":"portalId"
-        },
-        "sessionDurationSeconds":{
-          "shape":"SessionDurationSeconds",
-          "documentation":"<p>The duration (in seconds) for which the session at the URL is valid.</p> <p>Default: 43,200 seconds (12 hours)</p>",
-          "location":"querystring",
-          "locationName":"sessionDurationSeconds"
-        }
-      }
-    },
-    "CreatePresignedPortalUrlResponse":{
-      "type":"structure",
-      "required":["presignedPortalUrl"],
-      "members":{
-        "presignedPortalUrl":{
-          "shape":"Url",
-          "documentation":"<p>The pre-signed URL to the portal. The URL contains the portal ID and an authentication token that lets you access the portal. The URL has the following format.</p> <p> <code>https://&lt;portal-id&gt;.app.iotsitewise.aws/iam?token=&lt;encrypted-token&gt;</code> </p>"
-        }
-      }
-    },
     "CreateProjectRequest":{
       "type":"structure",
       "required":[
@@ -2594,12 +2739,16 @@
         },
         "assetModelProperties":{
           "shape":"AssetModelProperties",
-          "documentation":"<p>The list of asset properties for the asset model.</p>"
+          "documentation":"<p>The list of asset properties for the asset model.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetModelCompositeModels</code> object.</p>"
         },
         "assetModelHierarchies":{
           "shape":"AssetModelHierarchies",
           "documentation":"<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child asset relationships for an asset model.</p>"
         },
+        "assetModelCompositeModels":{
+          "shape":"AssetModelCompositeModels",
+          "documentation":"<p>The list of composite asset models for the asset model.</p>"
+        },
         "assetModelCreationDate":{
           "shape":"Timestamp",
           "documentation":"<p>The date the asset model was created, in Unix epoch time.</p>"
@@ -2640,8 +2789,7 @@
       "required":[
         "assetId",
         "assetName",
-        "assetModelId",
-        "assetProperty"
+        "assetModelId"
       ],
       "members":{
         "assetId":{
@@ -2658,7 +2806,11 @@
         },
         "assetProperty":{
           "shape":"Property",
-          "documentation":"<p>The asset property's definition, alias, and notification state.</p>"
+          "documentation":"<p>The asset property's definition, alias, and notification state.</p> <p>This response includes this object for normal asset properties. If you describe an asset property in a composite model, this response includes the asset property information in <code>compositeModel</code>.</p>"
+        },
+        "compositeModel":{
+          "shape":"CompositeModelProperty",
+          "documentation":"<p>The composite asset model that declares this asset property, if this asset property exists in a composite model.</p>"
         }
       }
     },
@@ -2706,12 +2858,16 @@
         },
         "assetProperties":{
           "shape":"AssetProperties",
-          "documentation":"<p>The list of asset properties for the asset.</p>"
+          "documentation":"<p>The list of asset properties for the asset.</p> <p>This object doesn't include properties that you define in composite models. You can find composite model properties in the <code>assetCompositeModels</code> object.</p>"
         },
         "assetHierarchies":{
           "shape":"AssetHierarchies",
           "documentation":"<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>"
         },
+        "assetCompositeModels":{
+          "shape":"AssetCompositeModels",
+          "documentation":"<p>The composite models for the asset.</p>"
+        },
         "assetCreationDate":{
           "shape":"Timestamp",
           "documentation":"<p>The date the asset was created, in Unix epoch time.</p>"
@@ -2974,7 +3130,7 @@
         },
         "portalStartUrl":{
           "shape":"Url",
-          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>"
+          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>"
         },
         "portalContactEmail":{
           "shape":"Email",
@@ -3460,7 +3616,7 @@
       "members":{
         "arn":{
           "shape":"ARN",
-          "documentation":"<p>The ARN of the IAM user. IAM users must have the <code>iotsitewise:CreatePresignedPortalUrl</code> permission to sign in to the portal. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>"
+          "documentation":"<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the <i>IAM User Guide</i>.</p> <note> <p>If you delete the IAM user, access policies that contain this identity include an empty <code>arn</code>. You can delete the access policy for the IAM user that no longer exists.</p> </note>"
         }
       },
       "documentation":"<p>Contains information about an AWS Identity and Access Management (IAM) user.</p>"
@@ -3699,6 +3855,53 @@
         }
       }
     },
+    "ListAssetRelationshipsRequest":{
+      "type":"structure",
+      "required":[
+        "assetId",
+        "traversalType"
+      ],
+      "members":{
+        "assetId":{
+          "shape":"ID",
+          "documentation":"<p>The ID of the asset.</p>",
+          "location":"uri",
+          "locationName":"assetId"
+        },
+        "traversalType":{
+          "shape":"TraversalType",
+          "documentation":"<p>The type of traversal to use to identify asset relationships. Choose the following option:</p> <ul> <li> <p> <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root asset. The asset that you specify in <code>assetId</code> is the first result in the list of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p> </li> </ul>",
+          "location":"querystring",
+          "locationName":"traversalType"
+        },
+        "nextToken":{
+          "shape":"NextToken",
+          "documentation":"<p>The token to be used for the next set of paginated results.</p>",
+          "location":"querystring",
+          "locationName":"nextToken"
+        },
+        "maxResults":{
+          "shape":"MaxResults",
+          "documentation":"<p>The maximum number of results to be returned per paginated request.</p>",
+          "location":"querystring",
+          "locationName":"maxResults"
+        }
+      }
+    },
+    "ListAssetRelationshipsResponse":{
+      "type":"structure",
+      "required":["assetRelationshipSummaries"],
+      "members":{
+        "assetRelationshipSummaries":{
+          "shape":"AssetRelationshipSummaries",
+          "documentation":"<p>A list that summarizes each asset relationship.</p>"
+        },
+        "nextToken":{
+          "shape":"NextToken",
+          "documentation":"<p>The token for the next set of results, or null if there are no additional results.</p>"
+        }
+      }
+    },
     "ListAssetsFilter":{
       "type":"string",
       "enum":[
@@ -4180,7 +4383,7 @@
         },
         "startUrl":{
           "shape":"Url",
-          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the <a href=\"https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html\">CreatePresignedPortalUrl</a> operation to create a URL that you can use to access the portal.</p>"
+          "documentation":"<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that use AWS SSO for authentication. For portals that use IAM for authentication, you must use the AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>"
         },
         "creationDate":{
           "shape":"Timestamp",
@@ -4293,7 +4496,8 @@
         "STRING",
         "INTEGER",
         "DOUBLE",
-        "BOOLEAN"
+        "BOOLEAN",
+        "STRUCT"
       ]
     },
     "PropertyNotification":{
@@ -4355,8 +4559,6 @@
     "PropertyValueIntegerValue":{"type":"integer"},
     "PropertyValueStringValue":{
       "type":"string",
-      "max":1024,
-      "min":1,
       "pattern":"[^\\u0000-\\u001F\\u007F]+"
     },
     "PutAssetPropertyValueEntries":{
@@ -4535,11 +4737,6 @@
       "exception":true,
       "fault":true
     },
-    "SessionDurationSeconds":{
-      "type":"integer",
-      "max":43200,
-      "min":900
-    },
     "TagKey":{
       "type":"string",
       "max":128,
@@ -4667,6 +4864,10 @@
         "CHILD"
       ]
     },
+    "TraversalType":{
+      "type":"string",
+      "enum":["PATH_TO_ROOT"]
+    },
     "TumblingWindow":{
       "type":"structure",
       "required":["interval"],
@@ -4678,6 +4879,16 @@
       },
       "documentation":"<p>Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations.</p>"
     },
+    "UnauthorizedException":{
+      "type":"structure",
+      "required":["message"],
+      "members":{
+        "message":{"shape":"ErrorMessage"}
+      },
+      "documentation":"<p>You are not authorized.</p>",
+      "error":{"httpStatusCode":401},
+      "exception":true
+    },
     "UntagResourceRequest":{
       "type":"structure",
       "required":[
@@ -4772,6 +4983,10 @@
           "shape":"AssetModelHierarchies",
           "documentation":"<p>The updated hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p> <p>You can specify up to 10 hierarchies per asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
         },
+        "assetModelCompositeModels":{
+          "shape":"AssetModelCompositeModels",
+          "documentation":"<p>The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties. Each composite model has a type that defines the properties that the composite model supports. Use composite asset models to define alarms on this asset model.</p>"
+        },
         "clientToken":{
           "shape":"ClientToken",
           "documentation":"<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
diff --git a/aws-java-sdk-models/src/main/resources/models/kafka-2018-11-14-intermediate.json b/aws-java-sdk-models/src/main/resources/models/kafka-2018-11-14-intermediate.json
index e00b74bed0cd..062a1c0636d9 100644
--- a/aws-java-sdk-models/src/main/resources/models/kafka-2018-11-14-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/kafka-2018-11-14-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/kinesis-video-signaling-2019-12-04-intermediate.json b/aws-java-sdk-models/src/main/resources/models/kinesis-video-signaling-2019-12-04-intermediate.json
index 3f732c7dd1f5..549c12b8f174 100644
--- a/aws-java-sdk-models/src/main/resources/models/kinesis-video-signaling-2019-12-04-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/kinesis-video-signaling-2019-12-04-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/lakeformation-2017-03-31-intermediate.json b/aws-java-sdk-models/src/main/resources/models/lakeformation-2017-03-31-intermediate.json
index 0c697da54ab8..daebd9b47db8 100644
--- a/aws-java-sdk-models/src/main/resources/models/lakeformation-2017-03-31-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/lakeformation-2017-03-31-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/lookoutvision-2020-11-20-intermediate.json b/aws-java-sdk-models/src/main/resources/models/lookoutvision-2020-11-20-intermediate.json
index 077ac414b729..9415068416f3 100644
--- a/aws-java-sdk-models/src/main/resources/models/lookoutvision-2020-11-20-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/lookoutvision-2020-11-20-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/macie-2017-12-19-intermediate.json b/aws-java-sdk-models/src/main/resources/models/macie-2017-12-19-intermediate.json
index 26f8349b0e58..2a548ecdb7f0 100644
--- a/aws-java-sdk-models/src/main/resources/models/macie-2017-12-19-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/macie-2017-12-19-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/macie2-2020-01-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/macie2-2020-01-01-intermediate.json
index 61b2473b2123..c972a5e4df83 100644
--- a/aws-java-sdk-models/src/main/resources/models/macie2-2020-01-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/macie2-2020-01-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/managedblockchain-2018-09-24-intermediate.json b/aws-java-sdk-models/src/main/resources/models/managedblockchain-2018-09-24-intermediate.json
index 0c07ad0fa72a..dc748c354082 100644
--- a/aws-java-sdk-models/src/main/resources/models/managedblockchain-2018-09-24-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/managedblockchain-2018-09-24-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/marketplace-catalog-2018-09-17-intermediate.json b/aws-java-sdk-models/src/main/resources/models/marketplace-catalog-2018-09-17-intermediate.json
index ce99fb23b65a..a5fadc6bc322 100644
--- a/aws-java-sdk-models/src/main/resources/models/marketplace-catalog-2018-09-17-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/marketplace-catalog-2018-09-17-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mediaconnect-2018-11-14-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mediaconnect-2018-11-14-intermediate.json
index d92fe3a44013..c3b10e5f8b13 100644
--- a/aws-java-sdk-models/src/main/resources/models/mediaconnect-2018-11-14-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mediaconnect-2018-11-14-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mediapackage-2017-10-12-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mediapackage-2017-10-12-intermediate.json
index 2db2de16882f..3d295c30d3aa 100644
--- a/aws-java-sdk-models/src/main/resources/models/mediapackage-2017-10-12-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mediapackage-2017-10-12-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mediapackage-vod-2018-11-07-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mediapackage-vod-2018-11-07-intermediate.json
index 0d362d7b5230..48c633353fd0 100644
--- a/aws-java-sdk-models/src/main/resources/models/mediapackage-vod-2018-11-07-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mediapackage-vod-2018-11-07-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientConstructors", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mgh-2017-05-31-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mgh-2017-05-31-intermediate.json
index 76df19c1a203..52dc81c1e283 100644
--- a/aws-java-sdk-models/src/main/resources/models/mgh-2017-05-31-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mgh-2017-05-31-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/migrationhub-config-2019-06-30-intermediate.json b/aws-java-sdk-models/src/main/resources/models/migrationhub-config-2019-06-30-intermediate.json
index cd490d35ef0c..86183a187d3b 100644
--- a/aws-java-sdk-models/src/main/resources/models/migrationhub-config-2019-06-30-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/migrationhub-config-2019-06-30-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mobile-2017-07-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mobile-2017-07-01-intermediate.json
index a07a86feb32d..1219f30a0062 100644
--- a/aws-java-sdk-models/src/main/resources/models/mobile-2017-07-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mobile-2017-07-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/models.lex-2017-04-19-intermediate.json b/aws-java-sdk-models/src/main/resources/models/models.lex-2017-04-19-intermediate.json
index 6834a67b54ff..32aaf197a020 100644
--- a/aws-java-sdk-models/src/main/resources/models/models.lex-2017-04-19-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/models.lex-2017-04-19-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : {
       "BotChannelAssociation" : [ "type" ],
       "BotMetadata" : [ "status" ],
diff --git a/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-intermediate.json
index 370f8b18a0bf..4e9375250312 100644
--- a/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-intermediate.json
@@ -325,7 +325,7 @@
       "asyncReturnType" : "DescribeAlarmsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm state, or a prefix for any action.</p>",
+      "documentation" : "<p>Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1014,7 +1014,7 @@
       "asyncReturnType" : "PutCompositeAlarmResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Creates or updates a <i>composite alarm</i>. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.</p> <p>The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms.</p> <p>Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.</p> <p>Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.</p> <note> <p>It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.</p> <p>To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>. </p> <p>Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. </p> </note> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in <code>INSUFFICIENT_DATA</code> state.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p>",
+      "documentation" : "<p>Creates or updates a <i>composite alarm</i>. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.</p> <p>The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms.</p> <p>Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.</p> <p>Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.</p> <note> <p>It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.</p> <p>To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>. </p> <p>Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. </p> </note> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in <code>INSUFFICIENT_DATA</code> state.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that has Systems Manager OpsItem actions.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -1137,7 +1137,7 @@
       "asyncReturnType" : "PutMetricAlarmResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.</p> <p>Alarms based on anomaly detection models cannot have Auto Scaling actions.</p> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:</p> <ul> <li> <p> <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions</p> </li> <li> <p> <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance status metrics</p> </li> <li> <p> <code>ec2:StopInstances</code> for alarms with stop actions</p> </li> <li> <p> <code>ec2:TerminateInstances</code> for alarms with terminate actions</p> </li> <li> <p>No specific permissions are needed for alarms with recover actions</p> </li> </ul> <p>If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions are not performed. However, if you are later granted the required permissions, the alarm actions that you created earlier are performed.</p> <p>If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies.</p> <p>If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2 instance using alarm actions.</p> <p>The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked role is called <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role\">AWS service-linked role</a>.</p>",
+      "documentation" : "<p>Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.</p> <p>Alarms based on anomaly detection models cannot have Auto Scaling actions.</p> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:</p> <ul> <li> <p>The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions</p> </li> <li> <p>The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.</p> </li> </ul> <p>The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role\">AWS service-linked role</a>.</p>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -47951,12 +47951,12 @@
         "c2jName" : "AlarmActions",
         "c2jShape" : "ResourceList",
         "deprecated" : false,
-        "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>",
+        "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAlarmActions",
-        "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>*/",
+        "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>*/",
         "getterMethodName" : "getAlarmActions",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -48074,7 +48074,7 @@
         "marshallingType" : "LIST",
         "name" : "AlarmActions",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>*/",
+        "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>*/",
         "setterMethodName" : "setAlarmActions",
         "setterModel" : {
           "timestampFormat" : null,
@@ -48089,13 +48089,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "alarmActions",
           "variableType" : "java.util.List<String>",
-          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>",
+          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -48842,12 +48842,12 @@
           "c2jName" : "AlarmActions",
           "c2jShape" : "ResourceList",
           "deprecated" : false,
-          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>",
+          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAlarmActions",
-          "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>*/",
+          "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>*/",
           "getterMethodName" : "getAlarmActions",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -48965,7 +48965,7 @@
           "marshallingType" : "LIST",
           "name" : "AlarmActions",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>*/",
+          "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>*/",
           "setterMethodName" : "setAlarmActions",
           "setterModel" : {
             "timestampFormat" : null,
@@ -48980,13 +48980,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "alarmActions",
             "variableType" : "java.util.List<String>",
-            "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>",
+            "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -51615,12 +51615,12 @@
         "c2jName" : "AlarmActions",
         "c2jShape" : "ResourceList",
         "deprecated" : false,
-        "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
+        "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withAlarmActions",
-        "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
+        "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
         "getterMethodName" : "getAlarmActions",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -51738,7 +51738,7 @@
         "marshallingType" : "LIST",
         "name" : "AlarmActions",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
+        "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
         "setterMethodName" : "setAlarmActions",
         "setterModel" : {
           "timestampFormat" : null,
@@ -51753,13 +51753,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
           "variableName" : "alarmActions",
           "variableType" : "java.util.List<String>",
-          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
+          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -53055,12 +53055,12 @@
         "c2jName" : "Tags",
         "c2jShape" : "TagList",
         "deprecated" : false,
-        "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>",
+        "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withTags",
-        "getterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@return A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.*/",
+        "getterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@return A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.*/",
         "getterMethodName" : "getTags",
         "getterModel" : {
           "returnType" : "java.util.List<Tag>",
@@ -53178,7 +53178,7 @@
         "marshallingType" : "LIST",
         "name" : "Tags",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.*/",
+        "setterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.*/",
         "setterMethodName" : "setTags",
         "setterModel" : {
           "timestampFormat" : null,
@@ -53193,13 +53193,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the existing values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the existing values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<Tag>",
           "variableName" : "tags",
           "variableType" : "java.util.List<Tag>",
-          "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>",
+          "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>",
           "simpleType" : "List<Tag>",
           "variableSetterType" : "java.util.Collection<Tag>"
         },
@@ -53349,12 +53349,12 @@
           "c2jName" : "AlarmActions",
           "c2jShape" : "ResourceList",
           "deprecated" : false,
-          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
+          "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withAlarmActions",
-          "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
+          "getterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@return The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
           "getterMethodName" : "getAlarmActions",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -53472,7 +53472,7 @@
           "marshallingType" : "LIST",
           "name" : "AlarmActions",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
+          "setterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>*/",
           "setterMethodName" : "setAlarmActions",
           "setterModel" : {
             "timestampFormat" : null,
@@ -53487,13 +53487,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setAlarmActions(java.util.Collection)} or {@link #withAlarmActions(java.util.Collection)} if you want to override the existing values.</p>\n@param alarmActions The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<String>",
             "variableName" : "alarmActions",
             "variableType" : "java.util.List<String>",
-            "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
+            "documentation" : "<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -54889,12 +54889,12 @@
           "c2jName" : "Tags",
           "c2jShape" : "TagList",
           "deprecated" : false,
-          "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>",
+          "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withTags",
-          "getterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@return A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.*/",
+          "getterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@return A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.*/",
           "getterMethodName" : "getTags",
           "getterModel" : {
             "returnType" : "java.util.List<Tag>",
@@ -55012,7 +55012,7 @@
           "marshallingType" : "LIST",
           "name" : "Tags",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.*/",
+          "setterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.*/",
           "setterMethodName" : "setTags",
           "setterModel" : {
             "timestampFormat" : null,
@@ -55027,13 +55027,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the existing values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the existing values.</p>\n@param tags A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "com.amazonaws.internal.SdkInternalList<Tag>",
             "variableName" : "tags",
             "variableType" : "java.util.List<Tag>",
-            "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>",
+            "documentation" : "<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>",
             "simpleType" : "List<Tag>",
             "variableSetterType" : "java.util.Collection<Tag>"
           },
diff --git a/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-model.json b/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-model.json
index 7496cbb8e9c8..d975032bb639 100644
--- a/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/monitoring-2010-08-01-model.json
@@ -108,7 +108,7 @@
       "errors":[
         {"shape":"InvalidNextToken"}
       ],
-      "documentation":"<p>Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm state, or a prefix for any action.</p>"
+      "documentation":"<p>Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action.</p>"
     },
     "DescribeAlarmsForMetric":{
       "name":"DescribeAlarmsForMetric",
@@ -375,7 +375,7 @@
       "errors":[
         {"shape":"LimitExceededFault"}
       ],
-      "documentation":"<p>Creates or updates a <i>composite alarm</i>. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.</p> <p>The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms.</p> <p>Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.</p> <p>Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.</p> <note> <p>It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.</p> <p>To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>. </p> <p>Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. </p> </note> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in <code>INSUFFICIENT_DATA</code> state.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p>"
+      "documentation":"<p>Creates or updates a <i>composite alarm</i>. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.</p> <p>The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms.</p> <p>Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.</p> <p>Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.</p> <note> <p>It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.</p> <p>To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the <code>AlarmRule</code> of one of the alarms to <code>False</code>. </p> <p>Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. </p> </note> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in <code>INSUFFICIENT_DATA</code> state.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have <code>iam:CreateServiceLinkedRole</code> to create a composite alarm that has Systems Manager OpsItem actions.</p>"
     },
     "PutDashboard":{
       "name":"PutDashboard",
@@ -422,7 +422,7 @@
       "errors":[
         {"shape":"LimitExceededFault"}
       ],
-      "documentation":"<p>Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.</p> <p>Alarms based on anomaly detection models cannot have Auto Scaling actions.</p> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:</p> <ul> <li> <p> <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions</p> </li> <li> <p> <code>ec2:DescribeInstanceStatus</code> and <code>ec2:DescribeInstances</code> for all alarms on EC2 instance status metrics</p> </li> <li> <p> <code>ec2:StopInstances</code> for alarms with stop actions</p> </li> <li> <p> <code>ec2:TerminateInstances</code> for alarms with terminate actions</p> </li> <li> <p>No specific permissions are needed for alarms with recover actions</p> </li> </ul> <p>If you have read/write permissions for Amazon CloudWatch but not for Amazon EC2, you can still create an alarm, but the stop or terminate actions are not performed. However, if you are later granted the required permissions, the alarm actions that you created earlier are performed.</p> <p>If you are using an IAM role (for example, an EC2 instance profile), you cannot stop or terminate the instance using alarm actions. However, you can still see the alarm state and perform any other actions such as Amazon SNS notifications or Auto Scaling policies.</p> <p>If you are using temporary security credentials granted using AWS STS, you cannot stop or terminate an EC2 instance using alarm actions.</p> <p>The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked role is called <code>AWSServiceRoleForCloudWatchEvents</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role\">AWS service-linked role</a>.</p>"
+      "documentation":"<p>Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.</p> <p>Alarms based on anomaly detection models cannot have Auto Scaling actions.</p> <p>When this operation creates an alarm, the alarm state is immediately set to <code>INSUFFICIENT_DATA</code>. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.</p> <p>When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.</p> <p>If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations:</p> <ul> <li> <p>The <code>iam:CreateServiceLinkedRole</code> for all alarms with EC2 actions</p> </li> <li> <p>The <code>iam:CreateServiceLinkedRole</code> to create an alarm with Systems Manager OpsItem actions.</p> </li> </ul> <p>The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked rolea for you. The service-linked roles are called <code>AWSServiceRoleForCloudWatchEvents</code> and <code>AWSServiceRoleForCloudWatchAlarms_ActionSSM</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role\">AWS service-linked role</a>.</p>"
     },
     "PutMetricData":{
       "name":"PutMetricData",
@@ -2434,7 +2434,7 @@
         },
         "AlarmActions":{
           "shape":"ResourceList",
-          "documentation":"<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> </p>"
+          "documentation":"<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p>"
         },
         "AlarmDescription":{
           "shape":"AlarmDescription",
@@ -2544,7 +2544,7 @@
         },
         "AlarmActions":{
           "shape":"ResourceList",
-          "documentation":"<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>"
+          "documentation":"<p>The actions to execute when this alarm transitions to the <code>ALARM</code> state from any other state. Each action is specified as an Amazon Resource Name (ARN).</p> <p>Valid Values: <code>arn:aws:automate:<i>region</i>:ec2:stop</code> | <code>arn:aws:automate:<i>region</i>:ec2:terminate</code> | <code>arn:aws:automate:<i>region</i>:ec2:recover</code> | <code>arn:aws:automate:<i>region</i>:ec2:reboot</code> | <code>arn:aws:sns:<i>region</i>:<i>account-id</i>:<i>sns-topic-name</i> </code> | <code>arn:aws:autoscaling:<i>region</i>:<i>account-id</i>:scalingPolicy:<i>policy-id</i>:autoScalingGroupName/<i>group-friendly-name</i>:policyName/<i>policy-friendly-name</i> </code> | <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:opsitem:<i>severity</i> </code> </p> <p>Valid Values (for use with IAM roles): <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Stop/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Terminate/1.0</code> | <code>arn:aws:swf:<i>region</i>:<i>account-id</i>:action/actions/AWS_EC2.InstanceId.Reboot/1.0</code> </p>"
         },
         "InsufficientDataActions":{
           "shape":"ResourceList",
@@ -2608,7 +2608,7 @@
         },
         "Tags":{
           "shape":"TagList",
-          "documentation":"<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>"
+          "documentation":"<p>A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm.</p> <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p> <p>If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html\">TagResource</a> or <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html\">UntagResource</a>.</p>"
         },
         "ThresholdMetricId":{
           "shape":"MetricId",
diff --git a/aws-java-sdk-models/src/main/resources/models/mq-2017-11-27-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mq-2017-11-27-intermediate.json
index 87e7acf0ab64..e05aaf814587 100644
--- a/aws-java-sdk-models/src/main/resources/models/mq-2017-11-27-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mq-2017-11-27-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/mturk-requester-2017-01-17-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mturk-requester-2017-01-17-intermediate.json
index 06c24bef7174..9b8cee58b656 100644
--- a/aws-java-sdk-models/src/main/resources/models/mturk-requester-2017-01-17-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mturk-requester-2017-01-17-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : {
       "Assignment" : [ "AssignmentStatus" ],
       "CreateQualificationTypeRequest" : [ "QualificationTypeStatus" ],
diff --git a/aws-java-sdk-models/src/main/resources/models/mwaa-2020-07-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/mwaa-2020-07-01-intermediate.json
index 120b802370c7..c9924413a1cb 100644
--- a/aws-java-sdk-models/src/main/resources/models/mwaa-2020-07-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/mwaa-2020-07-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/neptune-2014-10-31-intermediate.json b/aws-java-sdk-models/src/main/resources/models/neptune-2014-10-31-intermediate.json
index 08d8792d9495..bf9602da1f28 100644
--- a/aws-java-sdk-models/src/main/resources/models/neptune-2014-10-31-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/neptune-2014-10-31-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/network-firewall-2020-11-12-intermediate.json b/aws-java-sdk-models/src/main/resources/models/network-firewall-2020-11-12-intermediate.json
index ea8867352254..1212456b629f 100644
--- a/aws-java-sdk-models/src/main/resources/models/network-firewall-2020-11-12-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/network-firewall-2020-11-12-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-intermediate.json b/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-intermediate.json
index faa6895a6a24..9a11c4eaa4b7 100644
--- a/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
@@ -56,7 +56,7 @@
     "defaultEndpoint" : "pi.us-east-1.amazonaws.com",
     "defaultEndpointWithoutHttpProtocol" : "pi.us-east-1.amazonaws.com",
     "defaultRegion" : null,
-    "documentation" : "<p>AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running RDS instance. The guide provides detailed information about Performance Insights data types, parameters and errors. For more information about Performance Insights capabilities see <a href=\"http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\">Using Amazon RDS Performance Insights </a> in the <i>Amazon RDS User Guide</i>.</p> <p> The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension of the data provides DB load data for each time point in the queried time range, and each time point decomposes overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time point.</p>",
+    "documentation" : "<fullname>Amazon RDS Performance Insights</fullname> <p>Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. The guide provides detailed information about Performance Insights data types, parameters and errors.</p> <p>When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended monitoring metrics. Performance Insights offers a domain-specific view of DB load. </p> <p>DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host.</p> <ul> <li> <p>To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html\">Amazon Aurora User Guide</a>.</p> </li> <li> <p>To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\">Amazon RDS User Guide</a>.</p> </li> </ul>",
     "endpointPrefix" : "pi",
     "hasApiWithStreamInput" : false,
     "ionProtocol" : false,
@@ -92,7 +92,7 @@
       "asyncReturnType" : "DescribeDimensionKeysResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.</p>",
+      "documentation" : "<p>For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -137,7 +137,7 @@
       "asyncReturnType" : "GetResourceMetricsResult",
       "authenticated" : true,
       "deprecated" : false,
-      "documentation" : "<p>Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.</p>",
+      "documentation" : "<p>Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>",
       "endpointCacheRequired" : false,
       "endpointDiscovery" : null,
       "endpointOperation" : false,
@@ -531,12 +531,12 @@
         "c2jName" : "ServiceType",
         "c2jShape" : "ServiceType",
         "deprecated" : false,
-        "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+        "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : "ServiceType",
-        "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+        "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
         "fluentSetterMethodName" : "withServiceType",
-        "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+        "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
         "getterMethodName" : "getServiceType",
         "getterModel" : {
           "returnType" : "String",
@@ -570,7 +570,7 @@
         "marshallingType" : "STRING",
         "name" : "ServiceType",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+        "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
         "setterMethodName" : "setServiceType",
         "setterModel" : {
           "timestampFormat" : null,
@@ -585,13 +585,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+        "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "serviceType",
           "variableType" : "String",
-          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -600,12 +600,12 @@
         "c2jName" : "Identifier",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withIdentifier",
-        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
         "getterMethodName" : "getIdentifier",
         "getterModel" : {
           "returnType" : "String",
@@ -639,7 +639,7 @@
         "marshallingType" : "STRING",
         "name" : "Identifier",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
         "setterMethodName" : "setIdentifier",
         "setterModel" : {
           "timestampFormat" : null,
@@ -654,13 +654,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "identifier",
           "variableType" : "String",
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -669,12 +669,12 @@
         "c2jName" : "StartTime",
         "c2jShape" : "ISOTimestamp",
         "deprecated" : false,
-        "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
+        "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withStartTime",
-        "getterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@return The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
+        "getterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@return The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
         "getterMethodName" : "getStartTime",
         "getterModel" : {
           "returnType" : "java.util.Date",
@@ -708,7 +708,7 @@
         "marshallingType" : "DATE",
         "name" : "StartTime",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
+        "setterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
         "setterMethodName" : "setStartTime",
         "setterModel" : {
           "timestampFormat" : null,
@@ -723,13 +723,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
           "variableName" : "startTime",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
@@ -738,12 +738,12 @@
         "c2jName" : "EndTime",
         "c2jShape" : "ISOTimestamp",
         "deprecated" : false,
-        "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+        "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withEndTime",
-        "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+        "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
         "getterMethodName" : "getEndTime",
         "getterModel" : {
           "returnType" : "java.util.Date",
@@ -777,7 +777,7 @@
         "marshallingType" : "DATE",
         "name" : "EndTime",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+        "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
         "setterMethodName" : "setEndTime",
         "setterModel" : {
           "timestampFormat" : null,
@@ -792,13 +792,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
           "variableName" : "endTime",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
@@ -807,12 +807,12 @@
         "c2jName" : "Metric",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMetric",
-        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "getterMethodName" : "getMetric",
         "getterModel" : {
           "returnType" : "String",
@@ -846,7 +846,7 @@
         "marshallingType" : "STRING",
         "name" : "Metric",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "setterMethodName" : "setMetric",
         "setterModel" : {
           "timestampFormat" : null,
@@ -861,13 +861,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "metric",
           "variableType" : "String",
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -876,12 +876,12 @@
         "c2jName" : "PeriodInSeconds",
         "c2jShape" : "Integer",
         "deprecated" : false,
-        "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
+        "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withPeriodInSeconds",
-        "getterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@return The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
+        "getterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@return The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
         "getterMethodName" : "getPeriodInSeconds",
         "getterModel" : {
           "returnType" : "Integer",
@@ -915,7 +915,7 @@
         "marshallingType" : "INTEGER",
         "name" : "PeriodInSeconds",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
+        "setterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
         "setterMethodName" : "setPeriodInSeconds",
         "setterModel" : {
           "timestampFormat" : null,
@@ -930,13 +930,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "Integer",
           "variableName" : "periodInSeconds",
           "variableType" : "Integer",
-          "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
+          "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
           "simpleType" : "Integer",
           "variableSetterType" : "Integer"
         },
@@ -945,12 +945,12 @@
         "c2jName" : "GroupBy",
         "c2jShape" : "DimensionGroup",
         "deprecated" : false,
-        "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
+        "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withGroupBy",
-        "getterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@return A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
+        "getterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@return A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
         "getterMethodName" : "getGroupBy",
         "getterModel" : {
           "returnType" : "DimensionGroup",
@@ -984,7 +984,7 @@
         "marshallingType" : "STRUCTURED",
         "name" : "GroupBy",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
+        "setterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
         "setterMethodName" : "setGroupBy",
         "setterModel" : {
           "timestampFormat" : null,
@@ -999,13 +999,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "DimensionGroup",
           "variableName" : "groupBy",
           "variableType" : "DimensionGroup",
-          "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
+          "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
           "simpleType" : "DimensionGroup",
           "variableSetterType" : "DimensionGroup"
         },
@@ -1376,12 +1376,12 @@
           "c2jName" : "EndTime",
           "c2jShape" : "ISOTimestamp",
           "deprecated" : false,
-          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withEndTime",
-          "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+          "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
           "getterMethodName" : "getEndTime",
           "getterModel" : {
             "returnType" : "java.util.Date",
@@ -1415,7 +1415,7 @@
           "marshallingType" : "DATE",
           "name" : "EndTime",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+          "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
           "setterMethodName" : "setEndTime",
           "setterModel" : {
             "timestampFormat" : null,
@@ -1430,13 +1430,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : "unixTimestamp",
             "variableDeclarationType" : "java.util.Date",
             "variableName" : "endTime",
             "variableType" : "java.util.Date",
-            "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+            "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
             "simpleType" : "Date",
             "variableSetterType" : "java.util.Date"
           },
@@ -1600,12 +1600,12 @@
           "c2jName" : "GroupBy",
           "c2jShape" : "DimensionGroup",
           "deprecated" : false,
-          "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
+          "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withGroupBy",
-          "getterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@return A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
+          "getterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@return A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
           "getterMethodName" : "getGroupBy",
           "getterModel" : {
             "returnType" : "DimensionGroup",
@@ -1639,7 +1639,7 @@
           "marshallingType" : "STRUCTURED",
           "name" : "GroupBy",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
+          "setterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.*/",
           "setterMethodName" : "setGroupBy",
           "setterModel" : {
             "timestampFormat" : null,
@@ -1654,13 +1654,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>\n@param groupBy A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "DimensionGroup",
             "variableName" : "groupBy",
             "variableType" : "DimensionGroup",
-            "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
+            "documentation" : "<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>",
             "simpleType" : "DimensionGroup",
             "variableSetterType" : "DimensionGroup"
           },
@@ -1670,12 +1670,12 @@
           "c2jName" : "Identifier",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withIdentifier",
-          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
           "getterMethodName" : "getIdentifier",
           "getterModel" : {
             "returnType" : "String",
@@ -1709,7 +1709,7 @@
           "marshallingType" : "STRING",
           "name" : "Identifier",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
           "setterMethodName" : "setIdentifier",
           "setterModel" : {
             "timestampFormat" : null,
@@ -1724,13 +1724,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "identifier",
             "variableType" : "String",
-            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -1810,12 +1810,12 @@
           "c2jName" : "Metric",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMetric",
-          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "getterMethodName" : "getMetric",
           "getterModel" : {
             "returnType" : "String",
@@ -1849,7 +1849,7 @@
           "marshallingType" : "STRING",
           "name" : "Metric",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "setterMethodName" : "setMetric",
           "setterModel" : {
             "timestampFormat" : null,
@@ -1864,13 +1864,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "metric",
             "variableType" : "String",
-            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -2020,12 +2020,12 @@
           "c2jName" : "PeriodInSeconds",
           "c2jShape" : "Integer",
           "deprecated" : false,
-          "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
+          "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withPeriodInSeconds",
-          "getterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@return The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
+          "getterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@return The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
           "getterMethodName" : "getPeriodInSeconds",
           "getterModel" : {
             "returnType" : "Integer",
@@ -2059,7 +2059,7 @@
           "marshallingType" : "INTEGER",
           "name" : "PeriodInSeconds",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
+          "setterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.*/",
           "setterMethodName" : "setPeriodInSeconds",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2074,13 +2074,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>\n@param periodInSeconds The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "Integer",
             "variableName" : "periodInSeconds",
             "variableType" : "Integer",
-            "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
+            "documentation" : "<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>",
             "simpleType" : "Integer",
             "variableSetterType" : "Integer"
           },
@@ -2090,12 +2090,12 @@
           "c2jName" : "ServiceType",
           "c2jShape" : "ServiceType",
           "deprecated" : false,
-          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : "ServiceType",
-          "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+          "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
           "fluentSetterMethodName" : "withServiceType",
-          "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+          "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
           "getterMethodName" : "getServiceType",
           "getterModel" : {
             "returnType" : "String",
@@ -2129,7 +2129,7 @@
           "marshallingType" : "STRING",
           "name" : "ServiceType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+          "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
           "setterMethodName" : "setServiceType",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2144,13 +2144,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+          "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "serviceType",
             "variableType" : "String",
-            "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+            "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -2160,12 +2160,12 @@
           "c2jName" : "StartTime",
           "c2jShape" : "ISOTimestamp",
           "deprecated" : false,
-          "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withStartTime",
-          "getterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@return The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
+          "getterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@return The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
           "getterMethodName" : "getStartTime",
           "getterModel" : {
             "returnType" : "java.util.Date",
@@ -2199,7 +2199,7 @@
           "marshallingType" : "DATE",
           "name" : "StartTime",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
+          "setterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.*/",
           "setterMethodName" : "setStartTime",
           "setterModel" : {
             "timestampFormat" : null,
@@ -2214,13 +2214,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>\n@param startTime The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : "unixTimestamp",
             "variableDeclarationType" : "java.util.Date",
             "variableName" : "startTime",
             "variableType" : "java.util.Date",
-            "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
+            "documentation" : "<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>",
             "simpleType" : "Date",
             "variableSetterType" : "java.util.Date"
           },
@@ -3331,7 +3331,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>A logical grouping of Performance Insights metrics for a related subject area. For example, the <code>db.sql</code> dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>, <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.</p>",
+      "documentation" : "<p>A logical grouping of Performance Insights metrics for a related subject area. For example, the <code>db.sql</code> dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>, <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -3346,12 +3346,12 @@
         "c2jName" : "Group",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>",
+        "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withGroup",
-        "getterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@return The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>*/",
+        "getterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@return The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>*/",
         "getterMethodName" : "getGroup",
         "getterModel" : {
           "returnType" : "String",
@@ -3385,7 +3385,7 @@
         "marshallingType" : "STRING",
         "name" : "Group",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>*/",
+        "setterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>*/",
         "setterMethodName" : "setGroup",
         "setterModel" : {
           "timestampFormat" : null,
@@ -3400,13 +3400,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "group",
           "variableType" : "String",
-          "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>",
+          "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -3415,12 +3415,12 @@
         "c2jName" : "Dimensions",
         "c2jShape" : "StringList",
         "deprecated" : false,
-        "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>",
+        "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withDimensions",
-        "getterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@return A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>*/",
+        "getterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@return A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>*/",
         "getterMethodName" : "getDimensions",
         "getterModel" : {
           "returnType" : "java.util.List<String>",
@@ -3538,7 +3538,7 @@
         "marshallingType" : "LIST",
         "name" : "Dimensions",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>*/",
+        "setterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>*/",
         "setterMethodName" : "setDimensions",
         "setterModel" : {
           "timestampFormat" : null,
@@ -3553,13 +3553,13 @@
         "shouldFullyQualify" : false,
         "simple" : false,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setDimensions(java.util.Collection)} or {@link #withDimensions(java.util.Collection)} if you want to override the existing values.</p>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setDimensions(java.util.Collection)} or {@link #withDimensions(java.util.Collection)} if you want to override the existing values.</p>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "java.util.List<String>",
           "variableName" : "dimensions",
           "variableType" : "java.util.List<String>",
-          "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>",
+          "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>",
           "simpleType" : "List<String>",
           "variableSetterType" : "java.util.Collection<String>"
         },
@@ -3639,12 +3639,12 @@
           "c2jName" : "Dimensions",
           "c2jShape" : "StringList",
           "deprecated" : false,
-          "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>",
+          "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withDimensions",
-          "getterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@return A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>*/",
+          "getterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@return A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>*/",
           "getterMethodName" : "getDimensions",
           "getterModel" : {
             "returnType" : "java.util.List<String>",
@@ -3762,7 +3762,7 @@
           "marshallingType" : "LIST",
           "name" : "Dimensions",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>*/",
+          "setterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>*/",
           "setterMethodName" : "setDimensions",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3777,13 +3777,13 @@
           "shouldFullyQualify" : false,
           "simple" : false,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setDimensions(java.util.Collection)} or {@link #withDimensions(java.util.Collection)} if you want to override the existing values.</p>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>\n<p><b>NOTE:</b> This method appends the values to the existing list (if any). Use {@link #setDimensions(java.util.Collection)} or {@link #withDimensions(java.util.Collection)} if you want to override the existing values.</p>\n@param dimensions A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "java.util.List<String>",
             "variableName" : "dimensions",
             "variableType" : "java.util.List<String>",
-            "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>",
+            "documentation" : "<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>",
             "simpleType" : "List<String>",
             "variableSetterType" : "java.util.Collection<String>"
           },
@@ -3793,12 +3793,12 @@
           "c2jName" : "Group",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>",
+          "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withGroup",
-          "getterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@return The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>*/",
+          "getterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@return The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>*/",
           "getterMethodName" : "getGroup",
           "getterModel" : {
             "returnType" : "String",
@@ -3832,7 +3832,7 @@
           "marshallingType" : "STRING",
           "name" : "Group",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>*/",
+          "setterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>*/",
           "setterMethodName" : "setGroup",
           "setterModel" : {
             "timestampFormat" : null,
@@ -3847,13 +3847,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>\n@param group The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "group",
             "variableType" : "String",
-            "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>",
+            "documentation" : "<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -4781,12 +4781,12 @@
         "c2jName" : "ServiceType",
         "c2jShape" : "ServiceType",
         "deprecated" : false,
-        "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+        "documentation" : "<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : "ServiceType",
-        "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+        "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
         "fluentSetterMethodName" : "withServiceType",
-        "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+        "getterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@return The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
         "getterMethodName" : "getServiceType",
         "getterModel" : {
           "returnType" : "String",
@@ -4820,7 +4820,7 @@
         "marshallingType" : "STRING",
         "name" : "ServiceType",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+        "setterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
         "setterMethodName" : "setServiceType",
         "setterModel" : {
           "timestampFormat" : null,
@@ -4835,13 +4835,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+        "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "serviceType",
           "variableType" : "String",
-          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+          "documentation" : "<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -4850,12 +4850,12 @@
         "c2jName" : "Identifier",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withIdentifier",
-        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.*/",
         "getterMethodName" : "getIdentifier",
         "getterModel" : {
           "returnType" : "String",
@@ -4889,7 +4889,7 @@
         "marshallingType" : "STRING",
         "name" : "Identifier",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.*/",
         "setterMethodName" : "setIdentifier",
         "setterModel" : {
           "timestampFormat" : null,
@@ -4904,13 +4904,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "identifier",
           "variableType" : "String",
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -5141,12 +5141,12 @@
         "c2jName" : "EndTime",
         "c2jShape" : "ISOTimestamp",
         "deprecated" : false,
-        "documentation" : "<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+        "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withEndTime",
-        "getterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+        "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
         "getterMethodName" : "getEndTime",
         "getterModel" : {
           "returnType" : "java.util.Date",
@@ -5180,7 +5180,7 @@
         "marshallingType" : "DATE",
         "name" : "EndTime",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+        "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
         "setterMethodName" : "setEndTime",
         "setterModel" : {
           "timestampFormat" : null,
@@ -5195,13 +5195,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : "unixTimestamp",
           "variableDeclarationType" : "java.util.Date",
           "variableName" : "endTime",
           "variableType" : "java.util.Date",
-          "documentation" : "<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
           "simpleType" : "Date",
           "variableSetterType" : "java.util.Date"
         },
@@ -5419,12 +5419,12 @@
           "c2jName" : "EndTime",
           "c2jShape" : "ISOTimestamp",
           "deprecated" : false,
-          "documentation" : "<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+          "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withEndTime",
-          "getterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+          "getterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@return The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
           "getterMethodName" : "getEndTime",
           "getterModel" : {
             "returnType" : "java.util.Date",
@@ -5458,7 +5458,7 @@
           "marshallingType" : "DATE",
           "name" : "EndTime",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
+          "setterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.*/",
           "setterMethodName" : "setEndTime",
           "setterModel" : {
             "timestampFormat" : null,
@@ -5473,13 +5473,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>\n@param endTime The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : "unixTimestamp",
             "variableDeclarationType" : "java.util.Date",
             "variableName" : "endTime",
             "variableType" : "java.util.Date",
-            "documentation" : "<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
+            "documentation" : "<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>",
             "simpleType" : "Date",
             "variableSetterType" : "java.util.Date"
           },
@@ -5489,12 +5489,12 @@
           "c2jName" : "Identifier",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withIdentifier",
-          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.*/",
           "getterMethodName" : "getIdentifier",
           "getterModel" : {
             "returnType" : "String",
@@ -5528,7 +5528,7 @@
           "marshallingType" : "STRING",
           "name" : "Identifier",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.*/",
           "setterMethodName" : "setIdentifier",
           "setterModel" : {
             "timestampFormat" : null,
@@ -5543,13 +5543,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "identifier",
             "variableType" : "String",
-            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -5923,12 +5923,12 @@
           "c2jName" : "ServiceType",
           "c2jShape" : "ServiceType",
           "deprecated" : false,
-          "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+          "documentation" : "<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
           "endpointDiscoveryId" : false,
           "enumType" : "ServiceType",
-          "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+          "fluentSetterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
           "fluentSetterMethodName" : "withServiceType",
-          "getterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@return The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+          "getterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@return The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
           "getterMethodName" : "getServiceType",
           "getterModel" : {
             "returnType" : "String",
@@ -5962,7 +5962,7 @@
           "marshallingType" : "STRING",
           "name" : "ServiceType",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@see ServiceType*/",
+          "setterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@see ServiceType*/",
           "setterMethodName" : "setServiceType",
           "setterModel" : {
             "timestampFormat" : null,
@@ -5977,13 +5977,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>\n@param serviceType The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code>\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
+          "varargSetterDocumentation" : "/**<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>\n@param serviceType The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.\n@return Returns a reference to this object so that method calls can be chained together.\n@see ServiceType*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "serviceType",
             "variableType" : "String",
-            "documentation" : "<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>",
+            "documentation" : "<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -6241,12 +6241,12 @@
         "c2jName" : "Identifier",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+        "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withIdentifier",
-        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
         "getterMethodName" : "getIdentifier",
         "getterModel" : {
           "returnType" : "String",
@@ -6280,7 +6280,7 @@
         "marshallingType" : "STRING",
         "name" : "Identifier",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+        "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
         "setterMethodName" : "setIdentifier",
         "setterModel" : {
           "timestampFormat" : null,
@@ -6295,13 +6295,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "identifier",
           "variableType" : "String",
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -6674,12 +6674,12 @@
           "c2jName" : "Identifier",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+          "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withIdentifier",
-          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "getterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
           "getterMethodName" : "getIdentifier",
           "getterModel" : {
             "returnType" : "String",
@@ -6713,7 +6713,7 @@
           "marshallingType" : "STRING",
           "name" : "Identifier",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
+          "setterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>*/",
           "setterMethodName" : "setIdentifier",
           "setterModel" : {
             "timestampFormat" : null,
@@ -6728,13 +6728,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>\n@param identifier An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "identifier",
             "variableType" : "String",
-            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
+            "documentation" : "<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -7078,7 +7078,7 @@
         "skipGeneratingUnmarshaller" : false
       },
       "deprecated" : false,
-      "documentation" : "<p>A time-ordered series of data points, correpsonding to a dimension of a Performance Insights metric.</p>",
+      "documentation" : "<p>A time-ordered series of data points, corresponding to a dimension of a Performance Insights metric.</p>",
       "endpointDiscoveryMembers" : null,
       "enums" : null,
       "errorCode" : null,
@@ -7584,12 +7584,12 @@
         "c2jName" : "Metric",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMetric",
-        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "getterMethodName" : "getMetric",
         "getterModel" : {
           "returnType" : "String",
@@ -7623,7 +7623,7 @@
         "marshallingType" : "STRING",
         "name" : "Metric",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "setterMethodName" : "setMetric",
         "setterModel" : {
           "timestampFormat" : null,
@@ -7638,13 +7638,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "metric",
           "variableType" : "String",
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -8101,12 +8101,12 @@
           "c2jName" : "Metric",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMetric",
-          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "getterMethodName" : "getMetric",
           "getterModel" : {
             "returnType" : "String",
@@ -8140,7 +8140,7 @@
           "marshallingType" : "STRING",
           "name" : "Metric",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "setterMethodName" : "setMetric",
           "setterModel" : {
             "timestampFormat" : null,
@@ -8155,13 +8155,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "metric",
             "variableType" : "String",
-            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
@@ -8607,12 +8607,12 @@
         "c2jName" : "Metric",
         "c2jShape" : "String",
         "deprecated" : false,
-        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+        "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
         "endpointDiscoveryId" : false,
         "enumType" : null,
-        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "fluentSetterMethodName" : "withMetric",
-        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "getterMethodName" : "getMetric",
         "getterModel" : {
           "returnType" : "String",
@@ -8646,7 +8646,7 @@
         "marshallingType" : "STRING",
         "name" : "Metric",
         "sensitive" : false,
-        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+        "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
         "setterMethodName" : "setMetric",
         "setterModel" : {
           "timestampFormat" : null,
@@ -8661,13 +8661,13 @@
         "shouldFullyQualify" : false,
         "simple" : true,
         "unmarshallingType" : null,
-        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+        "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
         "variable" : {
           "timestampFormat" : null,
           "variableDeclarationType" : "String",
           "variableName" : "metric",
           "variableType" : "String",
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "simpleType" : "String",
           "variableSetterType" : "String"
         },
@@ -8985,12 +8985,12 @@
           "c2jName" : "Metric",
           "c2jShape" : "String",
           "deprecated" : false,
-          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+          "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
           "endpointDiscoveryId" : false,
           "enumType" : null,
-          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "fluentSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "fluentSetterMethodName" : "withMetric",
-          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "getterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@return The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "getterMethodName" : "getMetric",
           "getterModel" : {
             "returnType" : "String",
@@ -9024,7 +9024,7 @@
           "marshallingType" : "STRING",
           "name" : "Metric",
           "sensitive" : false,
-          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>*/",
+          "setterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.*/",
           "setterMethodName" : "setMetric",
           "setterModel" : {
             "timestampFormat" : null,
@@ -9039,13 +9039,13 @@
           "shouldFullyQualify" : false,
           "simple" : true,
           "unmarshallingType" : null,
-          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li>\n@return Returns a reference to this object so that method calls can be chained together.*/",
+          "varargSetterDocumentation" : "/**<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>\n@param metric The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only.\n@return Returns a reference to this object so that method calls can be chained together.*/",
           "variable" : {
             "timestampFormat" : null,
             "variableDeclarationType" : "String",
             "variableName" : "metric",
             "variableType" : "String",
-            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>",
+            "documentation" : "<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>",
             "simpleType" : "String",
             "variableSetterType" : "String"
           },
diff --git a/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-model.json b/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-model.json
index 3253917f9b27..6d16bf33a580 100644
--- a/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-model.json
+++ b/aws-java-sdk-models/src/main/resources/models/pi-2018-02-27-model.json
@@ -27,7 +27,7 @@
         {"shape":"InternalServiceError"},
         {"shape":"NotAuthorizedException"}
       ],
-      "documentation":"<p>For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.</p>"
+      "documentation":"<p>For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>"
     },
     "GetResourceMetrics":{
       "name":"GetResourceMetrics",
@@ -42,7 +42,7 @@
         {"shape":"InternalServiceError"},
         {"shape":"NotAuthorizedException"}
       ],
-      "documentation":"<p>Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.</p>"
+      "documentation":"<p>Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>"
     }
   },
   "shapes":{
@@ -81,31 +81,31 @@
       "members":{
         "ServiceType":{
           "shape":"ServiceType",
-          "documentation":"<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>"
+          "documentation":"<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>"
         },
         "Identifier":{
           "shape":"String",
-          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>"
+          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>"
         },
         "StartTime":{
           "shape":"ISOTimestamp",
-          "documentation":"<p>The date and time specifying the beginning of the requested time series data. You can't specify a <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points equal to or greater than <code>StartTime</code> will be returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>"
+          "documentation":"<p>The date and time specifying the beginning of the requested time series data. You must specify a <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data points equal to or greater than <code>StartTime</code> are returned.</p> <p>The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.</p>"
         },
         "EndTime":{
           "shape":"ISOTimestamp",
-          "documentation":"<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>"
+          "documentation":"<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>"
         },
         "Metric":{
           "shape":"String",
-          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>"
+          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>"
         },
         "PeriodInSeconds":{
           "shape":"Integer",
-          "documentation":"<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.</p>"
+          "documentation":"<p>The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:</p> <ul> <li> <p> <code>1</code> (one second)</p> </li> <li> <p> <code>60</code> (one minute)</p> </li> <li> <p> <code>300</code> (five minutes)</p> </li> <li> <p> <code>3600</code> (one hour)</p> </li> <li> <p> <code>86400</code> (twenty-four hours)</p> </li> </ul> <p>If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.</p>"
         },
         "GroupBy":{
           "shape":"DimensionGroup",
-          "documentation":"<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights will return all of the dimensions within that group, unless you provide the names of specific dimensions within that group. You can also request that Performance Insights return a limited number of values for a dimension.</p>"
+          "documentation":"<p>A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.</p>"
         },
         "PartitionBy":{
           "shape":"DimensionGroup",
@@ -156,18 +156,18 @@
       "members":{
         "Group":{
           "shape":"String",
-          "documentation":"<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db.user</code> </p> </li> <li> <p> <code>db.host</code> </p> </li> <li> <p> <code>db.sql</code> </p> </li> <li> <p> <code>db.sql_tokenized</code> </p> </li> <li> <p> <code>db.wait_event</code> </p> </li> <li> <p> <code>db.wait_event_type</code> </p> </li> </ul>"
+          "documentation":"<p>The name of the dimension group. Valid values are:</p> <ul> <li> <p> <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.application</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql</code> - The SQL that is currently executing (all engines)</p> </li> <li> <p> <code>db.sql_tokenized</code> - The SQL digest (all engines)</p> </li> <li> <p> <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)</p> </li> <li> <p> <code>db.user</code> - The user logged in to the database (all engines)</p> </li> </ul>"
         },
         "Dimensions":{
           "shape":"StringList",
-          "documentation":"<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p>db.user.id</p> </li> <li> <p>db.user.name</p> </li> <li> <p>db.host.id</p> </li> <li> <p>db.host.name</p> </li> <li> <p>db.sql.id</p> </li> <li> <p>db.sql.db_id</p> </li> <li> <p>db.sql.statement</p> </li> <li> <p>db.sql.tokenized_id</p> </li> <li> <p>db.sql_tokenized.id</p> </li> <li> <p>db.sql_tokenized.db_id</p> </li> <li> <p>db.sql_tokenized.statement</p> </li> <li> <p>db.wait_event.name</p> </li> <li> <p>db.wait_event.type</p> </li> <li> <p>db.wait_event_type.name</p> </li> </ul>"
+          "documentation":"<p>A list of specific dimensions from a dimension group. If this parameter is not present, then it signifies that all of the dimensions in the group were requested, or are present in the response.</p> <p>Valid values for elements in the <code>Dimensions</code> array are:</p> <ul> <li> <p> <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.host.id</code> - The host ID of the connected client (all engines)</p> </li> <li> <p> <code>db.host.name</code> - The host name of the connected client (all engines)</p> </li> <li> <p> <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)</p> </li> <li> <p> <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)</p> </li> <li> <p> <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql.statement</code> - The SQL text that is being executed (all engines)</p> </li> <li> <p> <code>db.sql.tokenized_id</code> </p> </li> <li> <p> <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)</p> </li> <li> <p> <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)</p> </li> <li> <p> <code>db.user.id</code> - The ID of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.user.name</code> - The name of the user logged in to the database (all engines)</p> </li> <li> <p> <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)</p> </li> <li> <p> <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)</p> </li> </ul>"
         },
         "Limit":{
           "shape":"Limit",
           "documentation":"<p>The maximum number of items to fetch for this dimension group.</p>"
         }
       },
-      "documentation":"<p>A logical grouping of Performance Insights metrics for a related subject area. For example, the <code>db.sql</code> dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>, <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.</p>"
+      "documentation":"<p>A logical grouping of Performance Insights metrics for a related subject area. For example, the <code>db.sql</code> dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>, <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.</p> <note> <p>Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500 bytes are returned.</p> </note>"
     },
     "DimensionKeyDescription":{
       "type":"structure",
@@ -209,11 +209,11 @@
       "members":{
         "ServiceType":{
           "shape":"ServiceType",
-          "documentation":"<p>The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i> is: <code>RDS</code> </p>"
+          "documentation":"<p>The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is <code>RDS</code>.</p>"
         },
         "Identifier":{
           "shape":"String",
-          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>"
+          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.</p>"
         },
         "MetricQueries":{
           "shape":"MetricQueryList",
@@ -225,7 +225,7 @@
         },
         "EndTime":{
           "shape":"ISOTimestamp",
-          "documentation":"<p>The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>"
+          "documentation":"<p>The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p> <p>The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.</p>"
         },
         "PeriodInSeconds":{
           "shape":"Integer",
@@ -254,7 +254,7 @@
         },
         "Identifier":{
           "shape":"String",
-          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>"
+          "documentation":"<p>An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.</p> <p>To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code> </p>"
         },
         "MetricList":{
           "shape":"MetricKeyDataPointsList",
@@ -307,7 +307,7 @@
           "documentation":"<p>An array of timestamp-value pairs, representing measurements over a period of time.</p>"
         }
       },
-      "documentation":"<p>A time-ordered series of data points, correpsonding to a dimension of a Performance Insights metric.</p>"
+      "documentation":"<p>A time-ordered series of data points, corresponding to a dimension of a Performance Insights metric.</p>"
     },
     "MetricKeyDataPointsList":{
       "type":"list",
@@ -319,7 +319,7 @@
       "members":{
         "Metric":{
           "shape":"String",
-          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>"
+          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>"
         },
         "GroupBy":{
           "shape":"DimensionGroup",
@@ -376,7 +376,7 @@
       "members":{
         "Metric":{
           "shape":"String",
-          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul>"
+          "documentation":"<p>The name of a Performance Insights metric to be measured.</p> <p>Valid values for <code>Metric</code> are:</p> <ul> <li> <p> <code>db.load.avg</code> - a scaled representation of the number of active sessions for the database engine.</p> </li> <li> <p> <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.</p> </li> </ul> <p>If the number of active sessions is less than an internal Performance Insights threshold, <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query <code>db.load.avg</code> only. </p>"
         },
         "Dimensions":{
           "shape":"DimensionMap",
@@ -397,5 +397,5 @@
       "min":1
     }
   },
-  "documentation":"<p>AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running RDS instance. The guide provides detailed information about Performance Insights data types, parameters and errors. For more information about Performance Insights capabilities see <a href=\"http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\">Using Amazon RDS Performance Insights </a> in the <i>Amazon RDS User Guide</i>.</p> <p> The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension of the data provides DB load data for each time point in the queried time range, and each time point decomposes overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time point.</p>"
+  "documentation":"<fullname>Amazon RDS Performance Insights</fullname> <p>Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. The guide provides detailed information about Performance Insights data types, parameters and errors.</p> <p>When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended monitoring metrics. Performance Insights offers a domain-specific view of DB load. </p> <p>DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host.</p> <ul> <li> <p>To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html\">Amazon Aurora User Guide</a>.</p> </li> <li> <p>To learn more about Performance Insights and Amazon RDS DB instances, go to the <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html\">Amazon RDS User Guide</a>.</p> </li> </ul>"
 }
diff --git a/aws-java-sdk-models/src/main/resources/models/qldb-2019-01-02-intermediate.json b/aws-java-sdk-models/src/main/resources/models/qldb-2019-01-02-intermediate.json
index cf78127e495b..7cc5e5f54d90 100644
--- a/aws-java-sdk-models/src/main/resources/models/qldb-2019-01-02-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/qldb-2019-01-02-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/ram-2018-01-04-intermediate.json b/aws-java-sdk-models/src/main/resources/models/ram-2018-01-04-intermediate.json
index 0277e2449776..22c95921ae90 100644
--- a/aws-java-sdk-models/src/main/resources/models/ram-2018-01-04-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/ram-2018-01-04-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/rds-data-2018-08-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/rds-data-2018-08-01-intermediate.json
index 6953164c81b5..bf35e13c3836 100644
--- a/aws-java-sdk-models/src/main/resources/models/rds-data-2018-08-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/rds-data-2018-08-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/redshift-data-2019-12-20-intermediate.json b/aws-java-sdk-models/src/main/resources/models/redshift-data-2019-12-20-intermediate.json
index 1d09da01da93..8ad6161e0ae1 100644
--- a/aws-java-sdk-models/src/main/resources/models/redshift-data-2019-12-20-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/redshift-data-2019-12-20-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/robomaker-2018-06-29-intermediate.json b/aws-java-sdk-models/src/main/resources/models/robomaker-2018-06-29-intermediate.json
index 17e60e0727f6..43c003ee7a07 100644
--- a/aws-java-sdk-models/src/main/resources/models/robomaker-2018-06-29-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/robomaker-2018-06-29-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/route53resolver-2018-04-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/route53resolver-2018-04-01-intermediate.json
index d79a17e92be7..e2046a8a33be 100644
--- a/aws-java-sdk-models/src/main/resources/models/route53resolver-2018-04-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/route53resolver-2018-04-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/s3-control-2018-08-20-intermediate.json b/aws-java-sdk-models/src/main/resources/models/s3-control-2018-08-20-intermediate.json
index 51014e591e86..684210924ab3 100644
--- a/aws-java-sdk-models/src/main/resources/models/s3-control-2018-08-20-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/s3-control-2018-08-20-intermediate.json
@@ -120,7 +120,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/sagemaker-featurestore-runtime-2020-07-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/sagemaker-featurestore-runtime-2020-07-01-intermediate.json
index 8000040e7de1..0347e7a222ff 100644
--- a/aws-java-sdk-models/src/main/resources/models/sagemaker-featurestore-runtime-2020-07-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/sagemaker-featurestore-runtime-2020-07-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/savingsplans-2019-06-28-intermediate.json b/aws-java-sdk-models/src/main/resources/models/savingsplans-2019-06-28-intermediate.json
index 4534b72d793c..e6da5b525bef 100644
--- a/aws-java-sdk-models/src/main/resources/models/savingsplans-2019-06-28-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/savingsplans-2019-06-28-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/serverlessrepo-2017-09-08-intermediate.json b/aws-java-sdk-models/src/main/resources/models/serverlessrepo-2017-09-08-intermediate.json
index 0367a11edce0..c65a3c323723 100644
--- a/aws-java-sdk-models/src/main/resources/models/serverlessrepo-2017-09-08-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/serverlessrepo-2017-09-08-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/sso-2019-06-10-intermediate.json b/aws-java-sdk-models/src/main/resources/models/sso-2019-06-10-intermediate.json
index 4deee09ede41..2d170da4e340 100644
--- a/aws-java-sdk-models/src/main/resources/models/sso-2019-06-10-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/sso-2019-06-10-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/sso-admin-2020-07-20-intermediate.json b/aws-java-sdk-models/src/main/resources/models/sso-admin-2020-07-20-intermediate.json
index 0dea3e7757cf..a1e0ef4a281a 100644
--- a/aws-java-sdk-models/src/main/resources/models/sso-admin-2020-07-20-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/sso-admin-2020-07-20-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/sso-oidc-2019-06-10-intermediate.json b/aws-java-sdk-models/src/main/resources/models/sso-oidc-2019-06-10-intermediate.json
index 34c9a39cd1e2..1f3581036de3 100644
--- a/aws-java-sdk-models/src/main/resources/models/sso-oidc-2019-06-10-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/sso-oidc-2019-06-10-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/synthetics-2017-10-11-intermediate.json b/aws-java-sdk-models/src/main/resources/models/synthetics-2017-10-11-intermediate.json
index 3d70f7586d3c..53cca09e8c4d 100644
--- a/aws-java-sdk-models/src/main/resources/models/synthetics-2017-10-11-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/synthetics-2017-10-11-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/tagging-2017-01-26-intermediate.json b/aws-java-sdk-models/src/main/resources/models/tagging-2017-01-26-intermediate.json
index 96146692a1a3..d684354ea5a7 100644
--- a/aws-java-sdk-models/src/main/resources/models/tagging-2017-01-26-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/tagging-2017-01-26-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : {
       "FailureInfo" : [ "ErrorCode" ]
     },
diff --git a/aws-java-sdk-models/src/main/resources/models/textract-2018-06-27-intermediate.json b/aws-java-sdk-models/src/main/resources/models/textract-2018-06-27-intermediate.json
index d5a20875165b..a81318098969 100644
--- a/aws-java-sdk-models/src/main/resources/models/textract-2018-06-27-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/textract-2018-06-27-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/translate-2017-07-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/translate-2017-07-01-intermediate.json
index 4458885dbd53..0633d8011d32 100644
--- a/aws-java-sdk-models/src/main/resources/models/translate-2017-07-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/translate-2017-07-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/wafv2-2019-07-29-intermediate.json b/aws-java-sdk-models/src/main/resources/models/wafv2-2019-07-29-intermediate.json
index 3c2206cf1f50..46c42618ac12 100644
--- a/aws-java-sdk-models/src/main/resources/models/wafv2-2019-07-29-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/wafv2-2019-07-29-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientConstructors", "ClientMutationMethods", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientMutationMethods", "ClientConstructors" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/workdocs-2016-05-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/workdocs-2016-05-01-intermediate.json
index 0e5fd232b0e6..9921a6070d94 100644
--- a/aws-java-sdk-models/src/main/resources/models/workdocs-2016-05-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/workdocs-2016-05-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "EnumSetterOverload", "ClientConstructors" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : {
       "Activity" : [ "Type" ],
       "Comment" : [ "Status", "Visibility" ],
diff --git a/aws-java-sdk-models/src/main/resources/models/workmail-2017-10-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/workmail-2017-10-01-intermediate.json
index 479934e72b2e..fcb53061becb 100644
--- a/aws-java-sdk-models/src/main/resources/models/workmail-2017-10-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/workmail-2017-10-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
+    "deprecatedSuppressions" : [ "ClientConstructors", "EnumSetterOverload", "ClientMutationMethods" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-models/src/main/resources/models/workmailmessageflow-2019-05-01-intermediate.json b/aws-java-sdk-models/src/main/resources/models/workmailmessageflow-2019-05-01-intermediate.json
index b32b148bf4f2..db65ffa85b25 100644
--- a/aws-java-sdk-models/src/main/resources/models/workmailmessageflow-2019-05-01-intermediate.json
+++ b/aws-java-sdk-models/src/main/resources/models/workmailmessageflow-2019-05-01-intermediate.json
@@ -20,7 +20,7 @@
     "customServiceMetadata" : null,
     "customServiceNameForRequest" : null,
     "customSignerProvider" : null,
-    "deprecatedSuppressions" : [ "EnumSetterOverload", "ClientConstructors", "ClientMutationMethods" ],
+    "deprecatedSuppressions" : [ "ClientMutationMethods", "ClientConstructors", "EnumSetterOverload" ],
     "emitLegacyEnumSetterFor" : null,
     "operationModifiers" : null,
     "operationsWithResponseStreamContentLengthValidation" : null,
diff --git a/aws-java-sdk-mq/pom.xml b/aws-java-sdk-mq/pom.xml
index cfc2dbce7001..a66e8a032c33 100644
--- a/aws-java-sdk-mq/pom.xml
+++ b/aws-java-sdk-mq/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mq</artifactId>
diff --git a/aws-java-sdk-mwaa/pom.xml b/aws-java-sdk-mwaa/pom.xml
index c8e335b272ba..b7eb3b3b65e2 100644
--- a/aws-java-sdk-mwaa/pom.xml
+++ b/aws-java-sdk-mwaa/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-mwaa</artifactId>
diff --git a/aws-java-sdk-neptune/pom.xml b/aws-java-sdk-neptune/pom.xml
index a283f5bcb89e..93d1dd9e86b3 100644
--- a/aws-java-sdk-neptune/pom.xml
+++ b/aws-java-sdk-neptune/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-neptune</artifactId>
diff --git a/aws-java-sdk-networkfirewall/pom.xml b/aws-java-sdk-networkfirewall/pom.xml
index 283ba3b758ee..109db2bc423f 100644
--- a/aws-java-sdk-networkfirewall/pom.xml
+++ b/aws-java-sdk-networkfirewall/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-networkfirewall</artifactId>
diff --git a/aws-java-sdk-networkmanager/pom.xml b/aws-java-sdk-networkmanager/pom.xml
index f74c8980243f..d5bc335a3fc4 100644
--- a/aws-java-sdk-networkmanager/pom.xml
+++ b/aws-java-sdk-networkmanager/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-networkmanager</artifactId>
diff --git a/aws-java-sdk-opensdk/pom.xml b/aws-java-sdk-opensdk/pom.xml
index c6b99985e0ef..c81bf9fc792d 100644
--- a/aws-java-sdk-opensdk/pom.xml
+++ b/aws-java-sdk-opensdk/pom.xml
@@ -5,7 +5,7 @@
     <parent>
 	<groupId>com.amazonaws</groupId>
 	<artifactId>aws-java-sdk-pom</artifactId>
-	<version>1.11.917</version>
+	<version>1.11.918</version>
     </parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-opensdk</artifactId>
@@ -22,7 +22,7 @@
 	    <artifactId>aws-java-sdk-core</artifactId>
 	    <groupId>com.amazonaws</groupId>
 	    <optional>false</optional>
-	   <version>1.11.917</version>
+	   <version>1.11.918</version>
 	</dependency>
     </dependencies>
     <build>
diff --git a/aws-java-sdk-opsworks/pom.xml b/aws-java-sdk-opsworks/pom.xml
index daaea6f458df..6c9bac31856d 100644
--- a/aws-java-sdk-opsworks/pom.xml
+++ b/aws-java-sdk-opsworks/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-opsworks</artifactId>
diff --git a/aws-java-sdk-opsworkscm/pom.xml b/aws-java-sdk-opsworkscm/pom.xml
index 53befcba7ac5..91a343b7b7c0 100644
--- a/aws-java-sdk-opsworkscm/pom.xml
+++ b/aws-java-sdk-opsworkscm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-opsworkscm</artifactId>
diff --git a/aws-java-sdk-organizations/pom.xml b/aws-java-sdk-organizations/pom.xml
index 2dca5ed76962..b259a1158599 100644
--- a/aws-java-sdk-organizations/pom.xml
+++ b/aws-java-sdk-organizations/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-organizations</artifactId>
diff --git a/aws-java-sdk-osgi/pom.xml b/aws-java-sdk-osgi/pom.xml
index 6732731faf35..d04ca483ae5e 100644
--- a/aws-java-sdk-osgi/pom.xml
+++ b/aws-java-sdk-osgi/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-osgi</artifactId>
diff --git a/aws-java-sdk-outposts/pom.xml b/aws-java-sdk-outposts/pom.xml
index 55c23a1a0fc4..a7042023694b 100644
--- a/aws-java-sdk-outposts/pom.xml
+++ b/aws-java-sdk-outposts/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-outposts</artifactId>
diff --git a/aws-java-sdk-personalize/pom.xml b/aws-java-sdk-personalize/pom.xml
index 134604d6a626..85906a835b0e 100644
--- a/aws-java-sdk-personalize/pom.xml
+++ b/aws-java-sdk-personalize/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-personalize</artifactId>
diff --git a/aws-java-sdk-personalizeevents/pom.xml b/aws-java-sdk-personalizeevents/pom.xml
index 383862a97e5e..711734daff22 100644
--- a/aws-java-sdk-personalizeevents/pom.xml
+++ b/aws-java-sdk-personalizeevents/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-personalizeevents</artifactId>
diff --git a/aws-java-sdk-personalizeruntime/pom.xml b/aws-java-sdk-personalizeruntime/pom.xml
index a4c36b4968b0..a07f410162db 100644
--- a/aws-java-sdk-personalizeruntime/pom.xml
+++ b/aws-java-sdk-personalizeruntime/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-personalizeruntime</artifactId>
diff --git a/aws-java-sdk-pi/pom.xml b/aws-java-sdk-pi/pom.xml
index 7316ddb932f8..a4d5b7d6e8e0 100644
--- a/aws-java-sdk-pi/pom.xml
+++ b/aws-java-sdk-pi/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pi</artifactId>
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPI.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPI.java
index 067bf3fcb15c..72632e9a3698 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPI.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPI.java
@@ -26,22 +26,38 @@
  * {@link com.amazonaws.services.pi.AbstractAWSPI} instead.
  * </p>
  * <p>
+ * <fullname>Amazon RDS Performance Insights</fullname>
  * <p>
- * AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data
- * captured from a running RDS instance. The guide provides detailed information about Performance Insights data types,
- * parameters and errors. For more information about Performance Insights capabilities see <a
- * href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon RDS Performance
- * Insights </a> in the <i>Amazon RDS User Guide</i>.
+ * Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on
+ * data captured from a running DB instance. The guide provides detailed information about Performance Insights data
+ * types, parameters and errors.
  * </p>
  * <p>
- * The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance
- * Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS
- * service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured
- * as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension
- * of the data provides DB load data for each time point in the queried time range, and each time point decomposes
- * overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time
- * point.
+ * When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the
+ * performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended
+ * monitoring metrics. Performance Insights offers a domain-specific view of DB load.
  * </p>
+ * <p>
+ * DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a
+ * two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time
+ * range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point.
+ * Examples include SQL, Wait event, User, and Host.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User
+ * Guide</a>.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon RDS DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>.
+ * </p>
+ * </li>
+ * </ul>
  */
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public interface AWSPI {
@@ -58,6 +74,12 @@ public interface AWSPI {
      * <p>
      * For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param describeDimensionKeysRequest
      * @return Result of the DescribeDimensionKeys operation returned by the service.
@@ -78,6 +100,12 @@ public interface AWSPI {
      * Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific
      * dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param getResourceMetricsRequest
      * @return Result of the GetResourceMetrics operation returned by the service.
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsync.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsync.java
index 07d090e7010b..a46d3d5876b3 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsync.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsync.java
@@ -25,22 +25,38 @@
  * {@link com.amazonaws.services.pi.AbstractAWSPIAsync} instead.
  * </p>
  * <p>
+ * <fullname>Amazon RDS Performance Insights</fullname>
  * <p>
- * AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data
- * captured from a running RDS instance. The guide provides detailed information about Performance Insights data types,
- * parameters and errors. For more information about Performance Insights capabilities see <a
- * href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon RDS Performance
- * Insights </a> in the <i>Amazon RDS User Guide</i>.
+ * Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on
+ * data captured from a running DB instance. The guide provides detailed information about Performance Insights data
+ * types, parameters and errors.
  * </p>
  * <p>
- * The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance
- * Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS
- * service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured
- * as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension
- * of the data provides DB load data for each time point in the queried time range, and each time point decomposes
- * overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time
- * point.
+ * When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the
+ * performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended
+ * monitoring metrics. Performance Insights offers a domain-specific view of DB load.
  * </p>
+ * <p>
+ * DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a
+ * two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time
+ * range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point.
+ * Examples include SQL, Wait event, User, and Host.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User
+ * Guide</a>.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon RDS DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>.
+ * </p>
+ * </li>
+ * </ul>
  */
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
 public interface AWSPIAsync extends AWSPI {
@@ -49,6 +65,12 @@ public interface AWSPIAsync extends AWSPI {
      * <p>
      * For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param describeDimensionKeysRequest
      * @return A Java Future containing the result of the DescribeDimensionKeys operation returned by the service.
@@ -62,6 +84,12 @@ public interface AWSPIAsync extends AWSPI {
      * <p>
      * For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param describeDimensionKeysRequest
      * @param asyncHandler
@@ -81,6 +109,12 @@ java.util.concurrent.Future<DescribeDimensionKeysResult> describeDimensionKeysAs
      * Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific
      * dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param getResourceMetricsRequest
      * @return A Java Future containing the result of the GetResourceMetrics operation returned by the service.
@@ -95,6 +129,12 @@ java.util.concurrent.Future<DescribeDimensionKeysResult> describeDimensionKeysAs
      * Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific
      * dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param getResourceMetricsRequest
      * @param asyncHandler
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsyncClient.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsyncClient.java
index a1f21c3e325b..1c447c29788c 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsyncClient.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIAsyncClient.java
@@ -25,22 +25,38 @@
  * the asynchronous operation; overloads which accept an {@code AsyncHandler} can be used to receive notification when
  * an asynchronous operation completes.
  * <p>
+ * <fullname>Amazon RDS Performance Insights</fullname>
  * <p>
- * AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data
- * captured from a running RDS instance. The guide provides detailed information about Performance Insights data types,
- * parameters and errors. For more information about Performance Insights capabilities see <a
- * href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon RDS Performance
- * Insights </a> in the <i>Amazon RDS User Guide</i>.
+ * Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on
+ * data captured from a running DB instance. The guide provides detailed information about Performance Insights data
+ * types, parameters and errors.
  * </p>
  * <p>
- * The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance
- * Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS
- * service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured
- * as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension
- * of the data provides DB load data for each time point in the queried time range, and each time point decomposes
- * overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time
- * point.
+ * When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the
+ * performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended
+ * monitoring metrics. Performance Insights offers a domain-specific view of DB load.
  * </p>
+ * <p>
+ * DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a
+ * two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time
+ * range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point.
+ * Examples include SQL, Wait event, User, and Host.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User
+ * Guide</a>.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon RDS DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>.
+ * </p>
+ * </li>
+ * </ul>
  */
 @ThreadSafe
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIClient.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIClient.java
index 0f9a12425069..d9710cd161e0 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIClient.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/AWSPIClient.java
@@ -50,22 +50,38 @@
  * Client for accessing AWS PI. All service calls made using this client are blocking, and will not return until the
  * service call completes.
  * <p>
+ * <fullname>Amazon RDS Performance Insights</fullname>
  * <p>
- * AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data
- * captured from a running RDS instance. The guide provides detailed information about Performance Insights data types,
- * parameters and errors. For more information about Performance Insights capabilities see <a
- * href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon RDS Performance
- * Insights </a> in the <i>Amazon RDS User Guide</i>.
+ * Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on
+ * data captured from a running DB instance. The guide provides detailed information about Performance Insights data
+ * types, parameters and errors.
  * </p>
  * <p>
- * The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance
- * Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS
- * service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured
- * as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension
- * of the data provides DB load data for each time point in the queried time range, and each time point decomposes
- * overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time
- * point.
+ * When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the
+ * performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended
+ * monitoring metrics. Performance Insights offers a domain-specific view of DB load.
  * </p>
+ * <p>
+ * DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a
+ * two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time
+ * range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point.
+ * Examples include SQL, Wait event, User, and Host.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User
+ * Guide</a>.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon RDS DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>.
+ * </p>
+ * </li>
+ * </ul>
  */
 @ThreadSafe
 @Generated("com.amazonaws:aws-java-sdk-code-generator")
@@ -150,6 +166,12 @@ private void init() {
      * <p>
      * For a specific time period, retrieve the top <code>N</code> dimension keys for a metric.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param describeDimensionKeysRequest
      * @return Result of the DescribeDimensionKeys operation returned by the service.
@@ -212,6 +234,12 @@ final DescribeDimensionKeysResult executeDescribeDimensionKeys(DescribeDimension
      * Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific
      * dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
      * </p>
+     * <note>
+     * <p>
+     * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first
+     * 500 bytes are returned.
+     * </p>
+     * </note>
      * 
      * @param getResourceMetricsRequest
      * @return Result of the GetResourceMetrics operation returned by the service.
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DescribeDimensionKeysRequest.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DescribeDimensionKeysRequest.java
index 0bc59506ebed..a5bcabeb96e5 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DescribeDimensionKeysRequest.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DescribeDimensionKeysRequest.java
@@ -28,7 +28,7 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
     /**
      * <p>
      * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * is <code>RDS</code>.
      * </p>
      */
     private String serviceType;
@@ -38,16 +38,16 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example,
+     * specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      */
     private String identifier;
     /**
      * <p>
-     * The date and time specifying the beginning of the requested time series data. You can't specify a
-     * <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points
-     * equal to or greater than <code>StartTime</code> will be returned.
+     * The date and time specifying the beginning of the requested time series data. You must specify a
+     * <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data
+     * points equal to or greater than <code>StartTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
@@ -56,8 +56,8 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
     private java.util.Date startTime;
     /**
      * <p>
-     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
-     * data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>,
+     * which means that data points less than (but not equal to) <code>EndTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -83,6 +83,14 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      */
     private String metric;
     /**
@@ -118,17 +126,17 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
      * </li>
      * </ul>
      * <p>
-     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a
-     * goal of returning roughly 100-200 data points in the response.
+     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal
+     * of returning roughly 100-200 data points in the response.
      * </p>
      */
     private Integer periodInSeconds;
     /**
      * <p>
      * A specification for how to aggregate the data points from a query result. You must specify a valid dimension
-     * group. Performance Insights will return all of the dimensions within that group, unless you provide the names of
-     * specific dimensions within that group. You can also request that Performance Insights return a limited number of
-     * values for a dimension.
+     * group. Performance Insights returns all dimensions within this group, unless you provide the names of specific
+     * dimensions within this group. You can also request that Performance Insights return a limited number of values
+     * for a dimension.
      * </p>
      */
     private DimensionGroup groupBy;
@@ -177,12 +185,12 @@ public class DescribeDimensionKeysRequest extends com.amazonaws.AmazonWebService
     /**
      * <p>
      * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * is <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
      *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @see ServiceType
      */
 
@@ -193,11 +201,11 @@ public void setServiceType(String serviceType) {
     /**
      * <p>
      * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * is <code>RDS</code>.
      * </p>
      * 
      * @return The AWS service for which Performance Insights will return metrics. The only valid value for
-     *         <i>ServiceType</i> is: <code>RDS</code>
+     *         <i>ServiceType</i> is <code>RDS</code>.
      * @see ServiceType
      */
 
@@ -208,12 +216,12 @@ public String getServiceType() {
     /**
      * <p>
      * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * is <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
      *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ServiceType
      */
@@ -226,12 +234,12 @@ public DescribeDimensionKeysRequest withServiceType(String serviceType) {
     /**
      * <p>
      * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * is <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
      *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ServiceType
      */
@@ -247,16 +255,16 @@ public DescribeDimensionKeysRequest withServiceType(ServiceType serviceType) {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example,
+     * specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
      * @param identifier
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For
+     *        example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      */
 
     public void setIdentifier(String identifier) {
@@ -269,15 +277,15 @@ public void setIdentifier(String identifier) {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example,
+     * specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
      * @return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *         this data source.</p>
      *         <p>
-     *         To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *         example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *         To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For
+     *         example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      */
 
     public String getIdentifier() {
@@ -290,16 +298,16 @@ public String getIdentifier() {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For example,
+     * specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
      * @param identifier
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value. For
+     *        example, specify <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -310,18 +318,18 @@ public DescribeDimensionKeysRequest withIdentifier(String identifier) {
 
     /**
      * <p>
-     * The date and time specifying the beginning of the requested time series data. You can't specify a
-     * <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points
-     * equal to or greater than <code>StartTime</code> will be returned.
+     * The date and time specifying the beginning of the requested time series data. You must specify a
+     * <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data
+     * points equal to or greater than <code>StartTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      * </p>
      * 
      * @param startTime
-     *        The date and time specifying the beginning of the requested time series data. You can't specify a
-     *        <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data
-     *        points equal to or greater than <code>StartTime</code> will be returned.</p>
+     *        The date and time specifying the beginning of the requested time series data. You must specify a
+     *        <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that
+     *        data points equal to or greater than <code>StartTime</code> are returned.</p>
      *        <p>
      *        The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      */
@@ -332,17 +340,17 @@ public void setStartTime(java.util.Date startTime) {
 
     /**
      * <p>
-     * The date and time specifying the beginning of the requested time series data. You can't specify a
-     * <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points
-     * equal to or greater than <code>StartTime</code> will be returned.
+     * The date and time specifying the beginning of the requested time series data. You must specify a
+     * <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data
+     * points equal to or greater than <code>StartTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      * </p>
      * 
-     * @return The date and time specifying the beginning of the requested time series data. You can't specify a
-     *         <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data
-     *         points equal to or greater than <code>StartTime</code> will be returned.</p>
+     * @return The date and time specifying the beginning of the requested time series data. You must specify a
+     *         <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that
+     *         data points equal to or greater than <code>StartTime</code> are returned.</p>
      *         <p>
      *         The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      */
@@ -353,18 +361,18 @@ public java.util.Date getStartTime() {
 
     /**
      * <p>
-     * The date and time specifying the beginning of the requested time series data. You can't specify a
-     * <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data points
-     * equal to or greater than <code>StartTime</code> will be returned.
+     * The date and time specifying the beginning of the requested time series data. You must specify a
+     * <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that data
+     * points equal to or greater than <code>StartTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      * </p>
      * 
      * @param startTime
-     *        The date and time specifying the beginning of the requested time series data. You can't specify a
-     *        <code>StartTime</code> that's earlier than 7 days ago. The value specified is <i>inclusive</i> - data
-     *        points equal to or greater than <code>StartTime</code> will be returned.</p>
+     *        The date and time specifying the beginning of the requested time series data. You must specify a
+     *        <code>StartTime</code> within the past 7 days. The value specified is <i>inclusive</i>, which means that
+     *        data points equal to or greater than <code>StartTime</code> are returned.</p>
      *        <p>
      *        The value for <code>StartTime</code> must be earlier than the value for <code>EndTime</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
@@ -377,8 +385,8 @@ public DescribeDimensionKeysRequest withStartTime(java.util.Date startTime) {
 
     /**
      * <p>
-     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
-     * data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>,
+     * which means that data points less than (but not equal to) <code>EndTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -386,7 +394,8 @@ public DescribeDimensionKeysRequest withStartTime(java.util.Date startTime) {
      * 
      * @param endTime
      *        The date and time specifying the end of the requested time series data. The value specified is
-     *        <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
+     *        <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are
+     *        returned.</p>
      *        <p>
      *        The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      */
@@ -397,15 +406,16 @@ public void setEndTime(java.util.Date endTime) {
 
     /**
      * <p>
-     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
-     * data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>,
+     * which means that data points less than (but not equal to) <code>EndTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      * </p>
      * 
      * @return The date and time specifying the end of the requested time series data. The value specified is
-     *         <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
+     *         <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are
+     *         returned.</p>
      *         <p>
      *         The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      */
@@ -416,8 +426,8 @@ public java.util.Date getEndTime() {
 
     /**
      * <p>
-     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
-     * data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i>,
+     * which means that data points less than (but not equal to) <code>EndTime</code> are returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -425,7 +435,8 @@ public java.util.Date getEndTime() {
      * 
      * @param endTime
      *        The date and time specifying the end of the requested time series data. The value specified is
-     *        <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
+     *        <i>exclusive</i>, which means that data points less than (but not equal to) <code>EndTime</code> are
+     *        returned.</p>
      *        <p>
      *        The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
@@ -455,6 +466,14 @@ public DescribeDimensionKeysRequest withEndTime(java.util.Date endTime) {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -473,6 +492,14 @@ public DescribeDimensionKeysRequest withEndTime(java.util.Date endTime) {
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      */
 
     public void setMetric(String metric) {
@@ -498,6 +525,14 @@ public void setMetric(String metric) {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @return The name of a Performance Insights metric to be measured.</p>
      *         <p>
@@ -515,6 +550,14 @@ public void setMetric(String metric) {
      *         <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *         </p>
      *         </li>
+     *         </ul>
+     *         <p>
+     *         If the number of active sessions is less than an internal Performance Insights threshold,
+     *         <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *         sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *         <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *         values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *         can query <code>db.load.avg</code> only.
      */
 
     public String getMetric() {
@@ -540,6 +583,14 @@ public String getMetric() {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -558,6 +609,14 @@ public String getMetric() {
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -599,8 +658,8 @@ public DescribeDimensionKeysRequest withMetric(String metric) {
      * </li>
      * </ul>
      * <p>
-     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a
-     * goal of returning roughly 100-200 data points in the response.
+     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal
+     * of returning roughly 100-200 data points in the response.
      * </p>
      * 
      * @param periodInSeconds
@@ -634,8 +693,8 @@ public DescribeDimensionKeysRequest withMetric(String metric) {
      *        </li>
      *        </ul>
      *        <p>
-     *        If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you,
-     *        with a goal of returning roughly 100-200 data points in the response.
+     *        If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with
+     *        a goal of returning roughly 100-200 data points in the response.
      */
 
     public void setPeriodInSeconds(Integer periodInSeconds) {
@@ -675,8 +734,8 @@ public void setPeriodInSeconds(Integer periodInSeconds) {
      * </li>
      * </ul>
      * <p>
-     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a
-     * goal of returning roughly 100-200 data points in the response.
+     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal
+     * of returning roughly 100-200 data points in the response.
      * </p>
      * 
      * @return The granularity, in seconds, of the data points returned from Performance Insights. A period can be as
@@ -709,7 +768,7 @@ public void setPeriodInSeconds(Integer periodInSeconds) {
      *         </li>
      *         </ul>
      *         <p>
-     *         If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you,
+     *         If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you,
      *         with a goal of returning roughly 100-200 data points in the response.
      */
 
@@ -750,8 +809,8 @@ public Integer getPeriodInSeconds() {
      * </li>
      * </ul>
      * <p>
-     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you, with a
-     * goal of returning roughly 100-200 data points in the response.
+     * If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with a goal
+     * of returning roughly 100-200 data points in the response.
      * </p>
      * 
      * @param periodInSeconds
@@ -785,8 +844,8 @@ public Integer getPeriodInSeconds() {
      *        </li>
      *        </ul>
      *        <p>
-     *        If you don't specify <code>PeriodInSeconds</code>, then Performance Insights will choose a value for you,
-     *        with a goal of returning roughly 100-200 data points in the response.
+     *        If you don't specify <code>PeriodInSeconds</code>, then Performance Insights chooses a value for you, with
+     *        a goal of returning roughly 100-200 data points in the response.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -798,16 +857,16 @@ public DescribeDimensionKeysRequest withPeriodInSeconds(Integer periodInSeconds)
     /**
      * <p>
      * A specification for how to aggregate the data points from a query result. You must specify a valid dimension
-     * group. Performance Insights will return all of the dimensions within that group, unless you provide the names of
-     * specific dimensions within that group. You can also request that Performance Insights return a limited number of
-     * values for a dimension.
+     * group. Performance Insights returns all dimensions within this group, unless you provide the names of specific
+     * dimensions within this group. You can also request that Performance Insights return a limited number of values
+     * for a dimension.
      * </p>
      * 
      * @param groupBy
      *        A specification for how to aggregate the data points from a query result. You must specify a valid
-     *        dimension group. Performance Insights will return all of the dimensions within that group, unless you
-     *        provide the names of specific dimensions within that group. You can also request that Performance Insights
-     *        return a limited number of values for a dimension.
+     *        dimension group. Performance Insights returns all dimensions within this group, unless you provide the
+     *        names of specific dimensions within this group. You can also request that Performance Insights return a
+     *        limited number of values for a dimension.
      */
 
     public void setGroupBy(DimensionGroup groupBy) {
@@ -817,15 +876,15 @@ public void setGroupBy(DimensionGroup groupBy) {
     /**
      * <p>
      * A specification for how to aggregate the data points from a query result. You must specify a valid dimension
-     * group. Performance Insights will return all of the dimensions within that group, unless you provide the names of
-     * specific dimensions within that group. You can also request that Performance Insights return a limited number of
-     * values for a dimension.
+     * group. Performance Insights returns all dimensions within this group, unless you provide the names of specific
+     * dimensions within this group. You can also request that Performance Insights return a limited number of values
+     * for a dimension.
      * </p>
      * 
      * @return A specification for how to aggregate the data points from a query result. You must specify a valid
-     *         dimension group. Performance Insights will return all of the dimensions within that group, unless you
-     *         provide the names of specific dimensions within that group. You can also request that Performance
-     *         Insights return a limited number of values for a dimension.
+     *         dimension group. Performance Insights returns all dimensions within this group, unless you provide the
+     *         names of specific dimensions within this group. You can also request that Performance Insights return a
+     *         limited number of values for a dimension.
      */
 
     public DimensionGroup getGroupBy() {
@@ -835,16 +894,16 @@ public DimensionGroup getGroupBy() {
     /**
      * <p>
      * A specification for how to aggregate the data points from a query result. You must specify a valid dimension
-     * group. Performance Insights will return all of the dimensions within that group, unless you provide the names of
-     * specific dimensions within that group. You can also request that Performance Insights return a limited number of
-     * values for a dimension.
+     * group. Performance Insights returns all dimensions within this group, unless you provide the names of specific
+     * dimensions within this group. You can also request that Performance Insights return a limited number of values
+     * for a dimension.
      * </p>
      * 
      * @param groupBy
      *        A specification for how to aggregate the data points from a query result. You must specify a valid
-     *        dimension group. Performance Insights will return all of the dimensions within that group, unless you
-     *        provide the names of specific dimensions within that group. You can also request that Performance Insights
-     *        return a limited number of values for a dimension.
+     *        dimension group. Performance Insights returns all dimensions within this group, unless you provide the
+     *        names of specific dimensions within this group. You can also request that Performance Insights return a
+     *        limited number of values for a dimension.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DimensionGroup.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DimensionGroup.java
index 4dfda382addd..26b81193a064 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DimensionGroup.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/DimensionGroup.java
@@ -23,6 +23,12 @@
  * dimension group consists of the following dimensions: <code>db.sql.id</code>, <code>db.sql.db_id</code>,
  * <code>db.sql.statement</code>, and <code>db.sql.tokenized_id</code>.
  * </p>
+ * <note>
+ * <p>
+ * Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, only the first 500
+ * bytes are returned.
+ * </p>
+ * </note>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/DimensionGroup" target="_top">AWS API
  *      Documentation</a>
@@ -37,32 +43,49 @@ public class DimensionGroup implements Serializable, Cloneable, StructuredPojo {
      * <ul>
      * <li>
      * <p>
-     * <code>db.user</code>
+     * <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.host</code>
+     * <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql</code>
+     * <code>db.host</code> - The host name of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql_tokenized</code>
+     * <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event</code>
+     * <code>db.sql</code> - The SQL that is currently executing (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event_type</code>
+     * <code>db.sql_tokenized</code> - The SQL digest (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.user</code> - The user logged in to the database (all engines)
      * </p>
      * </li>
      * </ul>
@@ -79,72 +102,89 @@ public class DimensionGroup implements Serializable, Cloneable, StructuredPojo {
      * <ul>
      * <li>
      * <p>
-     * db.user.id
+     * <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host.id</code> - The host ID of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host.name</code> - The host name of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.user.name
+     * <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.id
+     * <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.name
+     * <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.id
+     * <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.db_id
+     * <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.statement
+     * <code>db.sql.tokenized_id</code>
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.tokenized_id
+     * <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.id
+     * <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.db_id
+     * <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.statement
+     * <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.name
+     * <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.type
+     * <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event_type.name
+     * <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)
      * </p>
      * </li>
      * </ul>
@@ -164,32 +204,49 @@ public class DimensionGroup implements Serializable, Cloneable, StructuredPojo {
      * <ul>
      * <li>
      * <p>
-     * <code>db.user</code>
+     * <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host</code> - The host name of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.host</code>
+     * <code>db.sql</code> - The SQL that is currently executing (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql</code>
+     * <code>db.sql_tokenized</code> - The SQL digest (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql_tokenized</code>
+     * <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event</code>
+     * <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event_type</code>
+     * <code>db.user</code> - The user logged in to the database (all engines)
      * </p>
      * </li>
      * </ul>
@@ -199,32 +256,50 @@ public class DimensionGroup implements Serializable, Cloneable, StructuredPojo {
      *        <ul>
      *        <li>
      *        <p>
-     *        <code>db.user</code>
+     *        <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     *        PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     *        PostgreSQL and RDS PostgreSQL)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host</code> - The host name of the connected client (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.host</code>
+     *        <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.sql</code>
+     *        <code>db.sql</code> - The SQL that is currently executing (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.sql_tokenized</code>
+     *        <code>db.sql_tokenized</code> - The SQL digest (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.wait_event</code>
+     *        <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.wait_event_type</code>
+     *        <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all
+     *        engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.user</code> - The user logged in to the database (all engines)
      *        </p>
      *        </li>
      */
@@ -240,32 +315,49 @@ public void setGroup(String group) {
      * <ul>
      * <li>
      * <p>
-     * <code>db.user</code>
+     * <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host</code> - The host name of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.host</code>
+     * <code>db.sql</code> - The SQL that is currently executing (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql</code>
+     * <code>db.sql_tokenized</code> - The SQL digest (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql_tokenized</code>
+     * <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event</code>
+     * <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event_type</code>
+     * <code>db.user</code> - The user logged in to the database (all engines)
      * </p>
      * </li>
      * </ul>
@@ -274,32 +366,51 @@ public void setGroup(String group) {
      *         <ul>
      *         <li>
      *         <p>
-     *         <code>db.user</code>
+     *         <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     *         PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     *         PostgreSQL and RDS PostgreSQL)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.host</code> - The host name of the connected client (all engines)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS
+     *         PostgreSQL)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         <code>db.host</code>
+     *         <code>db.sql</code> - The SQL that is currently executing (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         <code>db.sql</code>
+     *         <code>db.sql_tokenized</code> - The SQL digest (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         <code>db.sql_tokenized</code>
+     *         <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         <code>db.wait_event</code>
+     *         <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all
+     *         engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         <code>db.wait_event_type</code>
+     *         <code>db.user</code> - The user logged in to the database (all engines)
      *         </p>
      *         </li>
      */
@@ -315,32 +426,49 @@ public String getGroup() {
      * <ul>
      * <li>
      * <p>
-     * <code>db.user</code>
+     * <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host</code> - The host name of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.host</code>
+     * <code>db.sql</code> - The SQL that is currently executing (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql</code>
+     * <code>db.sql_tokenized</code> - The SQL digest (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.sql_tokenized</code>
+     * <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event</code>
+     * <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * <code>db.wait_event_type</code>
+     * <code>db.user</code> - The user logged in to the database (all engines)
      * </p>
      * </li>
      * </ul>
@@ -350,32 +478,50 @@ public String getGroup() {
      *        <ul>
      *        <li>
      *        <p>
-     *        <code>db.user</code>
+     *        <code>db</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     *        PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.application</code> - The name of the application that is connected to the database (only Aurora
+     *        PostgreSQL and RDS PostgreSQL)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host</code> - The host name of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.session_type</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.host</code>
+     *        <code>db.sql</code> - The SQL that is currently executing (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.sql</code>
+     *        <code>db.sql_tokenized</code> - The SQL digest (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.sql_tokenized</code>
+     *        <code>db.wait_event</code> - The event for which the database backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.wait_event</code>
+     *        <code>db.wait_event_type</code> - The type of event for which the database backend is waiting (all
+     *        engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        <code>db.wait_event_type</code>
+     *        <code>db.user</code> - The user logged in to the database (all engines)
      *        </p>
      *        </li>
      * @return Returns a reference to this object so that method calls can be chained together.
@@ -397,72 +543,89 @@ public DimensionGroup withGroup(String group) {
      * <ul>
      * <li>
      * <p>
-     * db.user.id
+     * <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host.id</code> - The host ID of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.host.name</code> - The host name of the connected client (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.user.name
+     * <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.id
+     * <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.name
+     * <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.id
+     * <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.db_id
+     * <code>db.sql.tokenized_id</code>
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.statement
+     * <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.tokenized_id
+     * <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.id
+     * <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.db_id
+     * <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.statement
+     * <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.name
+     * <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.type
+     * <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event_type.name
+     * <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)
      * </p>
      * </li>
      * </ul>
@@ -475,72 +638,91 @@ public DimensionGroup withGroup(String group) {
      *         <ul>
      *         <li>
      *         <p>
-     *         db.user.id
+     *         <code>db.application.name</code> - The name of the application that is connected to the database (only
+     *         Aurora PostgreSQL and RDS PostgreSQL)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.host.id</code> - The host ID of the connected client (all engines)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.host.name</code> - The host name of the connected client (all engines)
+     *         </p>
+     *         </li>
+     *         <li>
+     *         <p>
+     *         <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL,
+     *         RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.user.name
+     *         <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS
+     *         PostgreSQL)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.host.id
+     *         <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.host.name
+     *         <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql.id
+     *         <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql.db_id
+     *         <code>db.sql.tokenized_id</code>
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql.statement
+     *         <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql.tokenized_id
+     *         <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql_tokenized.id
+     *         <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql_tokenized.db_id
+     *         <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.sql_tokenized.statement
+     *         <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.wait_event.name
+     *         <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.wait_event.type
+     *         <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
      *         </p>
      *         </li>
      *         <li>
      *         <p>
-     *         db.wait_event_type.name
+     *         <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all
+     *         engines)
      *         </p>
      *         </li>
      */
@@ -560,72 +742,89 @@ public java.util.List<String> getDimensions() {
      * <ul>
      * <li>
      * <p>
-     * db.user.id
+     * <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.user.name
+     * <code>db.host.id</code> - The host ID of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.id
+     * <code>db.host.name</code> - The host name of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.name
+     * <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.id
+     * <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.db_id
+     * <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.statement
+     * <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.tokenized_id
+     * <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.id
+     * <code>db.sql.tokenized_id</code>
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.db_id
+     * <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.statement
+     * <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.name
+     * <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.type
+     * <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event_type.name
+     * <code>db.user.name</code> - The name of the user logged in to the database (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)
      * </p>
      * </li>
      * </ul>
@@ -639,72 +838,91 @@ public java.util.List<String> getDimensions() {
      *        <ul>
      *        <li>
      *        <p>
-     *        db.user.id
+     *        <code>db.application.name</code> - The name of the application that is connected to the database (only
+     *        Aurora PostgreSQL and RDS PostgreSQL)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.id</code> - The host ID of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.name</code> - The host name of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL,
+     *        RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.user.name
+     *        <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS
+     *        PostgreSQL)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.id
+     *        <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.name
+     *        <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.id
+     *        <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.db_id
+     *        <code>db.sql.tokenized_id</code>
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.statement
+     *        <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.tokenized_id
+     *        <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.id
+     *        <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.db_id
+     *        <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.statement
+     *        <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.name
+     *        <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.type
+     *        <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event_type.name
+     *        <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all
+     *        engines)
      *        </p>
      *        </li>
      */
@@ -729,72 +947,89 @@ public void setDimensions(java.util.Collection<String> dimensions) {
      * <ul>
      * <li>
      * <p>
-     * db.user.id
+     * <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.user.name
+     * <code>db.host.id</code> - The host ID of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.id
+     * <code>db.host.name</code> - The host name of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.name
+     * <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.id
+     * <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.db_id
+     * <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.statement
+     * <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.tokenized_id
+     * <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.id
+     * <code>db.sql.tokenized_id</code>
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.db_id
+     * <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.statement
+     * <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.name
+     * <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.type
+     * <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event_type.name
+     * <code>db.user.name</code> - The name of the user logged in to the database (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)
      * </p>
      * </li>
      * </ul>
@@ -813,72 +1048,91 @@ public void setDimensions(java.util.Collection<String> dimensions) {
      *        <ul>
      *        <li>
      *        <p>
-     *        db.user.id
+     *        <code>db.application.name</code> - The name of the application that is connected to the database (only
+     *        Aurora PostgreSQL and RDS PostgreSQL)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.id</code> - The host ID of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.name</code> - The host name of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL,
+     *        RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.user.name
+     *        <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS
+     *        PostgreSQL)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.id
+     *        <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.name
+     *        <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.id
+     *        <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.db_id
+     *        <code>db.sql.tokenized_id</code>
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.statement
+     *        <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.tokenized_id
+     *        <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.id
+     *        <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.db_id
+     *        <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.statement
+     *        <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.name
+     *        <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.type
+     *        <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event_type.name
+     *        <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all
+     *        engines)
      *        </p>
      *        </li>
      * @return Returns a reference to this object so that method calls can be chained together.
@@ -905,72 +1159,89 @@ public DimensionGroup withDimensions(String... dimensions) {
      * <ul>
      * <li>
      * <p>
-     * db.user.id
+     * <code>db.application.name</code> - The name of the application that is connected to the database (only Aurora
+     * PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.user.name
+     * <code>db.host.id</code> - The host ID of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.id
+     * <code>db.host.name</code> - The host name of the connected client (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.host.name
+     * <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL, RDS
+     * PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.id
+     * <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS PostgreSQL)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.db_id
+     * <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.statement
+     * <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql.tokenized_id
+     * <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.id
+     * <code>db.sql.tokenized_id</code>
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.db_id
+     * <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.sql_tokenized.statement
+     * <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.name
+     * <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event.type
+     * <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      * </p>
      * </li>
      * <li>
      * <p>
-     * db.wait_event_type.name
+     * <code>db.user.name</code> - The name of the user logged in to the database (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
+     * </p>
+     * </li>
+     * <li>
+     * <p>
+     * <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all engines)
      * </p>
      * </li>
      * </ul>
@@ -984,72 +1255,91 @@ public DimensionGroup withDimensions(String... dimensions) {
      *        <ul>
      *        <li>
      *        <p>
-     *        db.user.id
+     *        <code>db.application.name</code> - The name of the application that is connected to the database (only
+     *        Aurora PostgreSQL and RDS PostgreSQL)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.id</code> - The host ID of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.host.name</code> - The host name of the connected client (all engines)
+     *        </p>
+     *        </li>
+     *        <li>
+     *        <p>
+     *        <code>db.name</code> - The name of the database to which the client is connected (only Aurora PostgreSQL,
+     *        RDS PostgreSQL, Aurora MySQL, RDS MySQL, and MariaDB)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.user.name
+     *        <code>db.session_type.name</code> - The type of the current session (only Aurora PostgreSQL and RDS
+     *        PostgreSQL)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.id
+     *        <code>db.sql.id</code> - The SQL ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.host.name
+     *        <code>db.sql.db_id</code> - The SQL ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.id
+     *        <code>db.sql.statement</code> - The SQL text that is being executed (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.db_id
+     *        <code>db.sql.tokenized_id</code>
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.statement
+     *        <code>db.sql_tokenized.id</code> - The SQL digest ID generated by Performance Insights (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql.tokenized_id
+     *        <code>db.sql_tokenized.db_id</code> - SQL digest ID generated by the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.id
+     *        <code>db.sql_tokenized.statement</code> - The SQL digest text (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.db_id
+     *        <code>db.user.id</code> - The ID of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.sql_tokenized.statement
+     *        <code>db.user.name</code> - The name of the user logged in to the database (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.name
+     *        <code>db.wait_event.name</code> - The event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event.type
+     *        <code>db.wait_event.type</code> - The type of event for which the backend is waiting (all engines)
      *        </p>
      *        </li>
      *        <li>
      *        <p>
-     *        db.wait_event_type.name
+     *        <code>db.wait_event_type.name</code> - The name of the event type for which the backend is waiting (all
+     *        engines)
      *        </p>
      *        </li>
      * @return Returns a reference to this object so that method calls can be chained together.
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsRequest.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsRequest.java
index 9ed8e7d83623..00e161d6f9f7 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsRequest.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsRequest.java
@@ -27,8 +27,8 @@ public class GetResourceMetricsRequest extends com.amazonaws.AmazonWebServiceReq
 
     /**
      * <p>
-     * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is
+     * <code>RDS</code>.
      * </p>
      */
     private String serviceType;
@@ -38,8 +38,8 @@ public class GetResourceMetricsRequest extends com.amazonaws.AmazonWebServiceReq
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      * </p>
      */
     private String identifier;
@@ -63,8 +63,8 @@ public class GetResourceMetricsRequest extends com.amazonaws.AmazonWebServiceReq
     private java.util.Date startTime;
     /**
      * <p>
-     * The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i>
-     * - data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
+     * data points less than (but not equal to) <code>EndTime</code> will be returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -127,13 +127,13 @@ public class GetResourceMetricsRequest extends com.amazonaws.AmazonWebServiceReq
 
     /**
      * <p>
-     * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is
+     * <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
-     *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        The AWS service for which Performance Insights returns metrics. The only valid value for
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @see ServiceType
      */
 
@@ -143,12 +143,12 @@ public void setServiceType(String serviceType) {
 
     /**
      * <p>
-     * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is
+     * <code>RDS</code>.
      * </p>
      * 
-     * @return The AWS service for which Performance Insights will return metrics. The only valid value for
-     *         <i>ServiceType</i> is: <code>RDS</code>
+     * @return The AWS service for which Performance Insights returns metrics. The only valid value for
+     *         <i>ServiceType</i> is <code>RDS</code>.
      * @see ServiceType
      */
 
@@ -158,13 +158,13 @@ public String getServiceType() {
 
     /**
      * <p>
-     * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is
+     * <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
-     *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        The AWS service for which Performance Insights returns metrics. The only valid value for
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ServiceType
      */
@@ -176,13 +176,13 @@ public GetResourceMetricsRequest withServiceType(String serviceType) {
 
     /**
      * <p>
-     * The AWS service for which Performance Insights will return metrics. The only valid value for <i>ServiceType</i>
-     * is: <code>RDS</code>
+     * The AWS service for which Performance Insights returns metrics. The only valid value for <i>ServiceType</i> is
+     * <code>RDS</code>.
      * </p>
      * 
      * @param serviceType
-     *        The AWS service for which Performance Insights will return metrics. The only valid value for
-     *        <i>ServiceType</i> is: <code>RDS</code>
+     *        The AWS service for which Performance Insights returns metrics. The only valid value for
+     *        <i>ServiceType</i> is <code>RDS</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      * @see ServiceType
      */
@@ -198,16 +198,16 @@ public GetResourceMetricsRequest withServiceType(ServiceType serviceType) {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      * </p>
      * 
      * @param identifier
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     *        <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      */
 
     public void setIdentifier(String identifier) {
@@ -220,15 +220,15 @@ public void setIdentifier(String identifier) {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      * </p>
      * 
      * @return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *         this data source.</p>
      *         <p>
-     *         To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *         example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *         To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     *         <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      */
 
     public String getIdentifier() {
@@ -241,16 +241,16 @@ public String getIdentifier() {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
-     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     * To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      * </p>
      * 
      * @param identifier
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use a DB instance as a data source, specify its <code>DbiResourceId</code> value. For example, specify
+     *        <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
@@ -406,15 +406,15 @@ public GetResourceMetricsRequest withStartTime(java.util.Date startTime) {
 
     /**
      * <p>
-     * The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i>
-     * - data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
+     * data points less than (but not equal to) <code>EndTime</code> will be returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      * </p>
      * 
      * @param endTime
-     *        The date and time specifiying the end of the requested time series data. The value specified is
+     *        The date and time specifying the end of the requested time series data. The value specified is
      *        <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
      *        <p>
      *        The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -426,14 +426,14 @@ public void setEndTime(java.util.Date endTime) {
 
     /**
      * <p>
-     * The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i>
-     * - data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
+     * data points less than (but not equal to) <code>EndTime</code> will be returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      * </p>
      * 
-     * @return The date and time specifiying the end of the requested time series data. The value specified is
+     * @return The date and time specifying the end of the requested time series data. The value specified is
      *         <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
      *         <p>
      *         The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
@@ -445,15 +445,15 @@ public java.util.Date getEndTime() {
 
     /**
      * <p>
-     * The date and time specifiying the end of the requested time series data. The value specified is <i>exclusive</i>
-     * - data points less than (but not equal to) <code>EndTime</code> will be returned.
+     * The date and time specifying the end of the requested time series data. The value specified is <i>exclusive</i> -
+     * data points less than (but not equal to) <code>EndTime</code> will be returned.
      * </p>
      * <p>
      * The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
      * </p>
      * 
      * @param endTime
-     *        The date and time specifiying the end of the requested time series data. The value specified is
+     *        The date and time specifying the end of the requested time series data. The value specified is
      *        <i>exclusive</i> - data points less than (but not equal to) <code>EndTime</code> will be returned.</p>
      *        <p>
      *        The value for <code>EndTime</code> must be later than the value for <code>StartTime</code>.
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsResult.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsResult.java
index dcc783ab5297..9d483fe6c807 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsResult.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/GetResourceMetricsResult.java
@@ -45,7 +45,7 @@ public class GetResourceMetricsResult extends com.amazonaws.AmazonWebServiceResu
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     * To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
      * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      */
@@ -174,7 +174,7 @@ public GetResourceMetricsResult withAlignedEndTime(java.util.Date alignedEndTime
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     * To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
      * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
@@ -182,8 +182,8 @@ public GetResourceMetricsResult withAlignedEndTime(java.util.Date alignedEndTime
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     *        <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      */
 
     public void setIdentifier(String identifier) {
@@ -196,15 +196,15 @@ public void setIdentifier(String identifier) {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     * To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
      * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
      * @return An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *         this data source.</p>
      *         <p>
-     *         To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *         example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *         To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     *         <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      */
 
     public String getIdentifier() {
@@ -217,7 +217,7 @@ public String getIdentifier() {
      * source.
      * </p>
      * <p>
-     * To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     * To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
      * <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * </p>
      * 
@@ -225,8 +225,8 @@ public String getIdentifier() {
      *        An immutable, AWS Region-unique identifier for a data source. Performance Insights gathers metrics from
      *        this data source.</p>
      *        <p>
-     *        To use an Amazon RDS instance as a data source, you specify its <code>DbiResourceId</code> value - for
-     *        example: <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
+     *        To use a DB instance as a data source, you specify its <code>DbiResourceId</code> value - for example:
+     *        <code>db-FAIHNTYBKTGAUSUZQYPDS2GW4A</code>
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricKeyDataPoints.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricKeyDataPoints.java
index 5ba4887d0642..284f506c3a5e 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricKeyDataPoints.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricKeyDataPoints.java
@@ -19,7 +19,7 @@
 
 /**
  * <p>
- * A time-ordered series of data points, correpsonding to a dimension of a Performance Insights metric.
+ * A time-ordered series of data points, corresponding to a dimension of a Performance Insights metric.
  * </p>
  * 
  * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/MetricKeyDataPoints" target="_top">AWS API
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricQuery.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricQuery.java
index 928905715900..e3e084f042c8 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricQuery.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/MetricQuery.java
@@ -50,6 +50,14 @@ public class MetricQuery implements Serializable, Cloneable, StructuredPojo {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      */
     private String metric;
     /**
@@ -99,6 +107,14 @@ public class MetricQuery implements Serializable, Cloneable, StructuredPojo {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -117,6 +133,14 @@ public class MetricQuery implements Serializable, Cloneable, StructuredPojo {
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      */
 
     public void setMetric(String metric) {
@@ -142,6 +166,14 @@ public void setMetric(String metric) {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @return The name of a Performance Insights metric to be measured.</p>
      *         <p>
@@ -159,6 +191,14 @@ public void setMetric(String metric) {
      *         <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *         </p>
      *         </li>
+     *         </ul>
+     *         <p>
+     *         If the number of active sessions is less than an internal Performance Insights threshold,
+     *         <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *         sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *         <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *         values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *         can query <code>db.load.avg</code> only.
      */
 
     public String getMetric() {
@@ -184,6 +224,14 @@ public String getMetric() {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -202,6 +250,14 @@ public String getMetric() {
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/ResponseResourceMetricKey.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/ResponseResourceMetricKey.java
index 152034f14ef9..cec57c59305c 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/ResponseResourceMetricKey.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/model/ResponseResourceMetricKey.java
@@ -47,6 +47,14 @@ public class ResponseResourceMetricKey implements Serializable, Cloneable, Struc
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      */
     private String metric;
     /**
@@ -75,6 +83,14 @@ public class ResponseResourceMetricKey implements Serializable, Cloneable, Struc
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -93,6 +109,14 @@ public class ResponseResourceMetricKey implements Serializable, Cloneable, Struc
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      */
 
     public void setMetric(String metric) {
@@ -118,6 +142,14 @@ public void setMetric(String metric) {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @return The name of a Performance Insights metric to be measured.</p>
      *         <p>
@@ -135,6 +167,14 @@ public void setMetric(String metric) {
      *         <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *         </p>
      *         </li>
+     *         </ul>
+     *         <p>
+     *         If the number of active sessions is less than an internal Performance Insights threshold,
+     *         <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *         sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *         <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *         values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *         can query <code>db.load.avg</code> only.
      */
 
     public String getMetric() {
@@ -160,6 +200,14 @@ public String getMetric() {
      * </p>
      * </li>
      * </ul>
+     * <p>
+     * If the number of active sessions is less than an internal Performance Insights threshold,
+     * <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active sessions
+     * is greater than the internal threshold, Performance Insights samples the active sessions, with
+     * <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw values, and
+     * <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you can query
+     * <code>db.load.avg</code> only.
+     * </p>
      * 
      * @param metric
      *        The name of a Performance Insights metric to be measured.</p>
@@ -178,6 +226,14 @@ public String getMetric() {
      *        <code>db.sampledload.avg</code> - the raw number of active sessions for the database engine.
      *        </p>
      *        </li>
+     *        </ul>
+     *        <p>
+     *        If the number of active sessions is less than an internal Performance Insights threshold,
+     *        <code>db.load.avg</code> and <code>db.sampledload.avg</code> are the same value. If the number of active
+     *        sessions is greater than the internal threshold, Performance Insights samples the active sessions, with
+     *        <code>db.load.avg</code> showing the scaled values, <code>db.sampledload.avg</code> showing the raw
+     *        values, and <code>db.sampledload.avg</code> less than <code>db.load.avg</code>. For most use cases, you
+     *        can query <code>db.load.avg</code> only.
      * @return Returns a reference to this object so that method calls can be chained together.
      */
 
diff --git a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/package-info.java b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/package-info.java
index b4ee5fff0891..9848b4f10a5f 100644
--- a/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/package-info.java
+++ b/aws-java-sdk-pi/src/main/java/com/amazonaws/services/pi/package-info.java
@@ -12,22 +12,38 @@
  */
 
 /**
+ * <fullname>Amazon RDS Performance Insights</fullname>
  * <p>
- * AWS Performance Insights enables you to monitor and explore different dimensions of database load based on data
- * captured from a running RDS instance. The guide provides detailed information about Performance Insights data types,
- * parameters and errors. For more information about Performance Insights capabilities see <a
- * href="http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Using Amazon RDS Performance
- * Insights </a> in the <i>Amazon RDS User Guide</i>.
+ * Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on
+ * data captured from a running DB instance. The guide provides detailed information about Performance Insights data
+ * types, parameters and errors.
  * </p>
  * <p>
- * The AWS Performance Insights API provides visibility into the performance of your RDS instance, when Performance
- * Insights is enabled for supported engine types. While Amazon CloudWatch provides the authoritative source for AWS
- * service vended monitoring metrics, AWS Performance Insights offers a domain-specific view of database load measured
- * as Average Active Sessions and provided to API consumers as a 2-dimensional time-series dataset. The time dimension
- * of the data provides DB load data for each time point in the queried time range, and each time point decomposes
- * overall load in relation to the requested dimensions, such as SQL, Wait-event, User or Host, measured at that time
- * point.
+ * When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the
+ * performance of your DB instance. Amazon CloudWatch provides the authoritative source for AWS service-vended
+ * monitoring metrics. Performance Insights offers a domain-specific view of DB load.
  * </p>
+ * <p>
+ * DB load is measured as Average Active Sessions. Performance Insights provides the data to API consumers as a
+ * two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time
+ * range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point.
+ * Examples include SQL, Wait event, User, and Host.
+ * </p>
+ * <ul>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon Aurora DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html">Amazon Aurora User
+ * Guide</a>.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * To learn more about Performance Insights and Amazon RDS DB instances, go to the <a
+ * href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html">Amazon RDS User Guide</a>.
+ * </p>
+ * </li>
+ * </ul>
  */
 package com.amazonaws.services.pi;
 
diff --git a/aws-java-sdk-pinpoint/pom.xml b/aws-java-sdk-pinpoint/pom.xml
index 51a6e5b6f049..e6d65a831033 100644
--- a/aws-java-sdk-pinpoint/pom.xml
+++ b/aws-java-sdk-pinpoint/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pinpoint</artifactId>
diff --git a/aws-java-sdk-pinpointemail/pom.xml b/aws-java-sdk-pinpointemail/pom.xml
index 4ad45d184143..98947d172f6d 100644
--- a/aws-java-sdk-pinpointemail/pom.xml
+++ b/aws-java-sdk-pinpointemail/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pinpointemail</artifactId>
diff --git a/aws-java-sdk-pinpointsmsvoice/pom.xml b/aws-java-sdk-pinpointsmsvoice/pom.xml
index b375bb95ae05..bcfa004ff965 100644
--- a/aws-java-sdk-pinpointsmsvoice/pom.xml
+++ b/aws-java-sdk-pinpointsmsvoice/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pinpointsmsvoice</artifactId>
diff --git a/aws-java-sdk-polly/pom.xml b/aws-java-sdk-polly/pom.xml
index 1ff21475a40c..1107d2d3f029 100644
--- a/aws-java-sdk-polly/pom.xml
+++ b/aws-java-sdk-polly/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-polly</artifactId>
diff --git a/aws-java-sdk-pricing/pom.xml b/aws-java-sdk-pricing/pom.xml
index c5295eec4a4e..6b17cc379e5a 100644
--- a/aws-java-sdk-pricing/pom.xml
+++ b/aws-java-sdk-pricing/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pricing</artifactId>
diff --git a/aws-java-sdk-qldb/pom.xml b/aws-java-sdk-qldb/pom.xml
index d6f8fa66b367..9c2fbed240a2 100644
--- a/aws-java-sdk-qldb/pom.xml
+++ b/aws-java-sdk-qldb/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-qldb</artifactId>
diff --git a/aws-java-sdk-qldbsession/pom.xml b/aws-java-sdk-qldbsession/pom.xml
index 840a51603991..6f20a8d235ff 100644
--- a/aws-java-sdk-qldbsession/pom.xml
+++ b/aws-java-sdk-qldbsession/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-qldbsession</artifactId>
diff --git a/aws-java-sdk-quicksight/pom.xml b/aws-java-sdk-quicksight/pom.xml
index 813ecab2b159..d3b2a03936db 100644
--- a/aws-java-sdk-quicksight/pom.xml
+++ b/aws-java-sdk-quicksight/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-quicksight</artifactId>
diff --git a/aws-java-sdk-ram/pom.xml b/aws-java-sdk-ram/pom.xml
index 5efbed18450d..4b6ac2cd5615 100644
--- a/aws-java-sdk-ram/pom.xml
+++ b/aws-java-sdk-ram/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ram</artifactId>
diff --git a/aws-java-sdk-rds/pom.xml b/aws-java-sdk-rds/pom.xml
index dad18bce1791..b7faee98fca9 100644
--- a/aws-java-sdk-rds/pom.xml
+++ b/aws-java-sdk-rds/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-rds</artifactId>
diff --git a/aws-java-sdk-rdsdata/pom.xml b/aws-java-sdk-rdsdata/pom.xml
index c13b73a353ce..f19fe9c5cc0a 100644
--- a/aws-java-sdk-rdsdata/pom.xml
+++ b/aws-java-sdk-rdsdata/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-rdsdata</artifactId>
diff --git a/aws-java-sdk-redshift/pom.xml b/aws-java-sdk-redshift/pom.xml
index f7a93ba802dc..0bee89010d1b 100644
--- a/aws-java-sdk-redshift/pom.xml
+++ b/aws-java-sdk-redshift/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-redshift</artifactId>
diff --git a/aws-java-sdk-redshiftdataapi/pom.xml b/aws-java-sdk-redshiftdataapi/pom.xml
index bf4571e69473..7cf9164d7eeb 100644
--- a/aws-java-sdk-redshiftdataapi/pom.xml
+++ b/aws-java-sdk-redshiftdataapi/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-redshiftdataapi</artifactId>
diff --git a/aws-java-sdk-rekognition/pom.xml b/aws-java-sdk-rekognition/pom.xml
index 0db45983ecd0..94ca09859510 100644
--- a/aws-java-sdk-rekognition/pom.xml
+++ b/aws-java-sdk-rekognition/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-rekognition</artifactId>
diff --git a/aws-java-sdk-resourcegroups/pom.xml b/aws-java-sdk-resourcegroups/pom.xml
index 10adf102cd18..1e0cb71443f9 100644
--- a/aws-java-sdk-resourcegroups/pom.xml
+++ b/aws-java-sdk-resourcegroups/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-resourcegroups</artifactId>
diff --git a/aws-java-sdk-resourcegroupstaggingapi/pom.xml b/aws-java-sdk-resourcegroupstaggingapi/pom.xml
index 11d59e509ddf..819fd4ff222f 100644
--- a/aws-java-sdk-resourcegroupstaggingapi/pom.xml
+++ b/aws-java-sdk-resourcegroupstaggingapi/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-resourcegroupstaggingapi</artifactId>
diff --git a/aws-java-sdk-robomaker/pom.xml b/aws-java-sdk-robomaker/pom.xml
index df622b919663..9ef02da1495b 100644
--- a/aws-java-sdk-robomaker/pom.xml
+++ b/aws-java-sdk-robomaker/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-robomaker</artifactId>
diff --git a/aws-java-sdk-route53/pom.xml b/aws-java-sdk-route53/pom.xml
index bb00fc428f27..fc33a4152d5c 100644
--- a/aws-java-sdk-route53/pom.xml
+++ b/aws-java-sdk-route53/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-route53</artifactId>
diff --git a/aws-java-sdk-route53resolver/pom.xml b/aws-java-sdk-route53resolver/pom.xml
index ecd4f9da6f23..a5b35f4d1dc8 100644
--- a/aws-java-sdk-route53resolver/pom.xml
+++ b/aws-java-sdk-route53resolver/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-route53resolver</artifactId>
diff --git a/aws-java-sdk-s3/pom.xml b/aws-java-sdk-s3/pom.xml
index b5f189dd4b65..c7aab3bc6eca 100644
--- a/aws-java-sdk-s3/pom.xml
+++ b/aws-java-sdk-s3/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-s3</artifactId>
diff --git a/aws-java-sdk-s3control/pom.xml b/aws-java-sdk-s3control/pom.xml
index 5eaef98f5731..730717e21795 100644
--- a/aws-java-sdk-s3control/pom.xml
+++ b/aws-java-sdk-s3control/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-s3control</artifactId>
diff --git a/aws-java-sdk-s3outposts/pom.xml b/aws-java-sdk-s3outposts/pom.xml
index e55bf220a83d..343af3e21e06 100644
--- a/aws-java-sdk-s3outposts/pom.xml
+++ b/aws-java-sdk-s3outposts/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-s3outposts</artifactId>
diff --git a/aws-java-sdk-sagemaker/pom.xml b/aws-java-sdk-sagemaker/pom.xml
index ef301002ddca..74d86eb2e929 100644
--- a/aws-java-sdk-sagemaker/pom.xml
+++ b/aws-java-sdk-sagemaker/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sagemaker</artifactId>
diff --git a/aws-java-sdk-sagemakeredgemanager/pom.xml b/aws-java-sdk-sagemakeredgemanager/pom.xml
index 0e8b9d1c18d6..295dd281b3aa 100644
--- a/aws-java-sdk-sagemakeredgemanager/pom.xml
+++ b/aws-java-sdk-sagemakeredgemanager/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sagemakeredgemanager</artifactId>
diff --git a/aws-java-sdk-sagemakerfeaturestoreruntime/pom.xml b/aws-java-sdk-sagemakerfeaturestoreruntime/pom.xml
index 6b6a418f2edb..c5ab396648dd 100644
--- a/aws-java-sdk-sagemakerfeaturestoreruntime/pom.xml
+++ b/aws-java-sdk-sagemakerfeaturestoreruntime/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sagemakerfeaturestoreruntime</artifactId>
diff --git a/aws-java-sdk-sagemakerruntime/pom.xml b/aws-java-sdk-sagemakerruntime/pom.xml
index 55289a498df6..204ee586d0d1 100644
--- a/aws-java-sdk-sagemakerruntime/pom.xml
+++ b/aws-java-sdk-sagemakerruntime/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sagemakerruntime</artifactId>
diff --git a/aws-java-sdk-savingsplans/pom.xml b/aws-java-sdk-savingsplans/pom.xml
index b3350e747c74..b6e8880a7516 100644
--- a/aws-java-sdk-savingsplans/pom.xml
+++ b/aws-java-sdk-savingsplans/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-savingsplans</artifactId>
diff --git a/aws-java-sdk-schemas/pom.xml b/aws-java-sdk-schemas/pom.xml
index dd405a5d6110..33c7a798466c 100644
--- a/aws-java-sdk-schemas/pom.xml
+++ b/aws-java-sdk-schemas/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-schemas</artifactId>
diff --git a/aws-java-sdk-secretsmanager/pom.xml b/aws-java-sdk-secretsmanager/pom.xml
index 91f247db0b8a..0abbd0ffa6d0 100644
--- a/aws-java-sdk-secretsmanager/pom.xml
+++ b/aws-java-sdk-secretsmanager/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-secretsmanager</artifactId>
diff --git a/aws-java-sdk-securityhub/pom.xml b/aws-java-sdk-securityhub/pom.xml
index 38cafb26abb7..ede9c42438cb 100644
--- a/aws-java-sdk-securityhub/pom.xml
+++ b/aws-java-sdk-securityhub/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-securityhub</artifactId>
diff --git a/aws-java-sdk-serverlessapplicationrepository/pom.xml b/aws-java-sdk-serverlessapplicationrepository/pom.xml
index e2983a81b387..2e1e0b686fb1 100644
--- a/aws-java-sdk-serverlessapplicationrepository/pom.xml
+++ b/aws-java-sdk-serverlessapplicationrepository/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-serverlessapplicationrepository</artifactId>
diff --git a/aws-java-sdk-servermigration/pom.xml b/aws-java-sdk-servermigration/pom.xml
index c996b64f1a89..9d640ffac9cb 100644
--- a/aws-java-sdk-servermigration/pom.xml
+++ b/aws-java-sdk-servermigration/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-servermigration</artifactId>
diff --git a/aws-java-sdk-servicecatalog/pom.xml b/aws-java-sdk-servicecatalog/pom.xml
index 4401285b25e0..1ea20ae1c33d 100644
--- a/aws-java-sdk-servicecatalog/pom.xml
+++ b/aws-java-sdk-servicecatalog/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-servicecatalog</artifactId>
diff --git a/aws-java-sdk-servicediscovery/pom.xml b/aws-java-sdk-servicediscovery/pom.xml
index 15f619ef0a1f..de1db34040ce 100644
--- a/aws-java-sdk-servicediscovery/pom.xml
+++ b/aws-java-sdk-servicediscovery/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-servicediscovery</artifactId>
diff --git a/aws-java-sdk-servicequotas/pom.xml b/aws-java-sdk-servicequotas/pom.xml
index 04cc46a64d9b..1be4d982140f 100644
--- a/aws-java-sdk-servicequotas/pom.xml
+++ b/aws-java-sdk-servicequotas/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-servicequotas</artifactId>
diff --git a/aws-java-sdk-ses/pom.xml b/aws-java-sdk-ses/pom.xml
index 2c983ae715f7..0f42ecc7c37b 100644
--- a/aws-java-sdk-ses/pom.xml
+++ b/aws-java-sdk-ses/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ses</artifactId>
diff --git a/aws-java-sdk-sesv2/pom.xml b/aws-java-sdk-sesv2/pom.xml
index 2723afc92b7a..1e2f8a853717 100644
--- a/aws-java-sdk-sesv2/pom.xml
+++ b/aws-java-sdk-sesv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sesv2</artifactId>
diff --git a/aws-java-sdk-shield/pom.xml b/aws-java-sdk-shield/pom.xml
index 0706b16b38a4..d3e59c09f18f 100644
--- a/aws-java-sdk-shield/pom.xml
+++ b/aws-java-sdk-shield/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-shield</artifactId>
diff --git a/aws-java-sdk-signer/pom.xml b/aws-java-sdk-signer/pom.xml
index e1c038dc5c2c..1559cbef8ba2 100644
--- a/aws-java-sdk-signer/pom.xml
+++ b/aws-java-sdk-signer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-signer</artifactId>
diff --git a/aws-java-sdk-simpledb/pom.xml b/aws-java-sdk-simpledb/pom.xml
index 36c80b144a12..1166c29d3743 100644
--- a/aws-java-sdk-simpledb/pom.xml
+++ b/aws-java-sdk-simpledb/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-simpledb</artifactId>
diff --git a/aws-java-sdk-simpleworkflow/pom.xml b/aws-java-sdk-simpleworkflow/pom.xml
index b548686d8e70..65f8d4d09d5c 100644
--- a/aws-java-sdk-simpleworkflow/pom.xml
+++ b/aws-java-sdk-simpleworkflow/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-simpleworkflow</artifactId>
diff --git a/aws-java-sdk-snowball/pom.xml b/aws-java-sdk-snowball/pom.xml
index 803710775cf9..9614cc620095 100644
--- a/aws-java-sdk-snowball/pom.xml
+++ b/aws-java-sdk-snowball/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-snowball</artifactId>
diff --git a/aws-java-sdk-sns/pom.xml b/aws-java-sdk-sns/pom.xml
index fb73c33df671..132e3e35f6bc 100644
--- a/aws-java-sdk-sns/pom.xml
+++ b/aws-java-sdk-sns/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sns</artifactId>
diff --git a/aws-java-sdk-sqs/pom.xml b/aws-java-sdk-sqs/pom.xml
index 65150812e7c5..1d6593d9ebe2 100644
--- a/aws-java-sdk-sqs/pom.xml
+++ b/aws-java-sdk-sqs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sqs</artifactId>
diff --git a/aws-java-sdk-ssm/pom.xml b/aws-java-sdk-ssm/pom.xml
index 732c552ac5ab..8eecdacb51d8 100644
--- a/aws-java-sdk-ssm/pom.xml
+++ b/aws-java-sdk-ssm/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ssm</artifactId>
diff --git a/aws-java-sdk-sso/pom.xml b/aws-java-sdk-sso/pom.xml
index ac57672bd92e..d6a72b48ab0f 100644
--- a/aws-java-sdk-sso/pom.xml
+++ b/aws-java-sdk-sso/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sso</artifactId>
diff --git a/aws-java-sdk-ssoadmin/pom.xml b/aws-java-sdk-ssoadmin/pom.xml
index a2de9ab2d8e3..61b98c18270e 100644
--- a/aws-java-sdk-ssoadmin/pom.xml
+++ b/aws-java-sdk-ssoadmin/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ssoadmin</artifactId>
diff --git a/aws-java-sdk-ssooidc/pom.xml b/aws-java-sdk-ssooidc/pom.xml
index fc6c917cc3ef..43c0cd5840aa 100644
--- a/aws-java-sdk-ssooidc/pom.xml
+++ b/aws-java-sdk-ssooidc/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-ssooidc</artifactId>
diff --git a/aws-java-sdk-stepfunctions/pom.xml b/aws-java-sdk-stepfunctions/pom.xml
index 34cfa6fa21bd..5d0bc13a7ce5 100644
--- a/aws-java-sdk-stepfunctions/pom.xml
+++ b/aws-java-sdk-stepfunctions/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-stepfunctions</artifactId>
diff --git a/aws-java-sdk-storagegateway/pom.xml b/aws-java-sdk-storagegateway/pom.xml
index 3ffd1fb3dc1e..8dfa90be4259 100644
--- a/aws-java-sdk-storagegateway/pom.xml
+++ b/aws-java-sdk-storagegateway/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-storagegateway</artifactId>
diff --git a/aws-java-sdk-sts/pom.xml b/aws-java-sdk-sts/pom.xml
index 65fa1a24561d..a80878911232 100644
--- a/aws-java-sdk-sts/pom.xml
+++ b/aws-java-sdk-sts/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-sts</artifactId>
diff --git a/aws-java-sdk-support/pom.xml b/aws-java-sdk-support/pom.xml
index 3b7a7898f8d4..eb328bdc8200 100644
--- a/aws-java-sdk-support/pom.xml
+++ b/aws-java-sdk-support/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-support</artifactId>
diff --git a/aws-java-sdk-synthetics/pom.xml b/aws-java-sdk-synthetics/pom.xml
index fbe2ed2e25ac..ff4618874b95 100644
--- a/aws-java-sdk-synthetics/pom.xml
+++ b/aws-java-sdk-synthetics/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-synthetics</artifactId>
diff --git a/aws-java-sdk-test-utils/pom.xml b/aws-java-sdk-test-utils/pom.xml
index 65b25e6e91d8..bdd8580e068e 100644
--- a/aws-java-sdk-test-utils/pom.xml
+++ b/aws-java-sdk-test-utils/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-test-utils</artifactId>
diff --git a/aws-java-sdk-textract/pom.xml b/aws-java-sdk-textract/pom.xml
index 6d9a1e2b172b..57c9ea0d09ba 100644
--- a/aws-java-sdk-textract/pom.xml
+++ b/aws-java-sdk-textract/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-textract</artifactId>
diff --git a/aws-java-sdk-timestreamquery/pom.xml b/aws-java-sdk-timestreamquery/pom.xml
index f39d6de6505d..3c8681685321 100644
--- a/aws-java-sdk-timestreamquery/pom.xml
+++ b/aws-java-sdk-timestreamquery/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-timestreamquery</artifactId>
diff --git a/aws-java-sdk-timestreamwrite/pom.xml b/aws-java-sdk-timestreamwrite/pom.xml
index 0d94d7e28d53..17d615800e6a 100644
--- a/aws-java-sdk-timestreamwrite/pom.xml
+++ b/aws-java-sdk-timestreamwrite/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-timestreamwrite</artifactId>
diff --git a/aws-java-sdk-transcribe/pom.xml b/aws-java-sdk-transcribe/pom.xml
index ca929ab9807e..428d8e9abed3 100644
--- a/aws-java-sdk-transcribe/pom.xml
+++ b/aws-java-sdk-transcribe/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-transcribe</artifactId>
diff --git a/aws-java-sdk-transfer/pom.xml b/aws-java-sdk-transfer/pom.xml
index 5fd1c49f1014..3112a8ba0932 100644
--- a/aws-java-sdk-transfer/pom.xml
+++ b/aws-java-sdk-transfer/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-transfer</artifactId>
diff --git a/aws-java-sdk-translate/pom.xml b/aws-java-sdk-translate/pom.xml
index 3421c300fd22..d1a6f404242c 100644
--- a/aws-java-sdk-translate/pom.xml
+++ b/aws-java-sdk-translate/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-translate</artifactId>
diff --git a/aws-java-sdk-waf/pom.xml b/aws-java-sdk-waf/pom.xml
index e81acac23212..967a94f17f01 100644
--- a/aws-java-sdk-waf/pom.xml
+++ b/aws-java-sdk-waf/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-waf</artifactId>
diff --git a/aws-java-sdk-wafv2/pom.xml b/aws-java-sdk-wafv2/pom.xml
index a3b4a5c1bd2b..45ed8ae05ff9 100644
--- a/aws-java-sdk-wafv2/pom.xml
+++ b/aws-java-sdk-wafv2/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-wafv2</artifactId>
diff --git a/aws-java-sdk-workdocs/pom.xml b/aws-java-sdk-workdocs/pom.xml
index ebf39eae965d..2ac636d36960 100644
--- a/aws-java-sdk-workdocs/pom.xml
+++ b/aws-java-sdk-workdocs/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-workdocs</artifactId>
diff --git a/aws-java-sdk-worklink/pom.xml b/aws-java-sdk-worklink/pom.xml
index 30da7077578e..2a0ed4b904db 100644
--- a/aws-java-sdk-worklink/pom.xml
+++ b/aws-java-sdk-worklink/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-worklink</artifactId>
diff --git a/aws-java-sdk-workmail/pom.xml b/aws-java-sdk-workmail/pom.xml
index eb59f17253fe..5249e8e0ce34 100644
--- a/aws-java-sdk-workmail/pom.xml
+++ b/aws-java-sdk-workmail/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-workmail</artifactId>
diff --git a/aws-java-sdk-workmailmessageflow/pom.xml b/aws-java-sdk-workmailmessageflow/pom.xml
index a3ed8f003ebe..1fc0142e7c86 100644
--- a/aws-java-sdk-workmailmessageflow/pom.xml
+++ b/aws-java-sdk-workmailmessageflow/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-workmailmessageflow</artifactId>
diff --git a/aws-java-sdk-workspaces/pom.xml b/aws-java-sdk-workspaces/pom.xml
index cd3c39023d54..7b7a9634820b 100644
--- a/aws-java-sdk-workspaces/pom.xml
+++ b/aws-java-sdk-workspaces/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-workspaces</artifactId>
diff --git a/aws-java-sdk-xray/pom.xml b/aws-java-sdk-xray/pom.xml
index c083a740a27c..33fa2a1db173 100644
--- a/aws-java-sdk-xray/pom.xml
+++ b/aws-java-sdk-xray/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-xray</artifactId>
diff --git a/aws-java-sdk/pom.xml b/aws-java-sdk/pom.xml
index df53afba0e4c..c3b0cad9cc96 100644
--- a/aws-java-sdk/pom.xml
+++ b/aws-java-sdk/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk</artifactId>
diff --git a/jmespath-java/pom.xml b/jmespath-java/pom.xml
index 14bc382fdc7a..8a1cb5aebec3 100644
--- a/jmespath-java/pom.xml
+++ b/jmespath-java/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>com.amazonaws</groupId>
     <artifactId>aws-java-sdk-pom</artifactId>
-    <version>1.11.917</version>
+    <version>1.11.918</version>
   </parent>
   <groupId>com.amazonaws</groupId>
   <artifactId>jmespath-java</artifactId>
diff --git a/pom.xml b/pom.xml
index ce6f9c6248c6..ead913832b34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.amazonaws</groupId>
   <artifactId>aws-java-sdk-pom</artifactId>
-  <version>1.11.917</version>
+  <version>1.11.918</version>
   <packaging>pom</packaging>
   <name>AWS SDK for Java</name>
   <description>The Amazon Web Services SDK for Java provides Java APIs
diff --git a/release.properties b/release.properties
index 0fe8d317dc4b..598df62f8071 100644
--- a/release.properties
+++ b/release.properties
@@ -1 +1 @@
-releaseId=bcb787ae-9e19-44cc-bc57-a8819655896f
\ No newline at end of file
+releaseId=bbad9e43-80df-4ec5-ac3e-e2c35e1b64fb
\ No newline at end of file