import { HttpRequest as __HttpRequest , HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http" ; import { expectBoolean as __expectBoolean , expectInt32 as __expectInt32 , expectLong as __expectLong , expectNonNull as __expectNonNull , expectObject as __expectObject , expectString as __expectString , extendedEncodeURIComponent as __extendedEncodeURIComponent , limitedParseDouble as __limitedParseDouble , parseRfc3339DateTime as __parseRfc3339DateTime , serializeFloat as __serializeFloat , } from "@aws-sdk/smithy-client" ; import { Endpoint as __Endpoint , MetadataBearer as __MetadataBearer , ResponseMetadata as __ResponseMetadata , SerdeContext as __SerdeContext , SmithyException as __SmithyException , } from "@aws-sdk/types" ; import { AcceptAdministratorInvitationCommandInput , AcceptAdministratorInvitationCommandOutput , } from "../commands/AcceptAdministratorInvitationCommand" ; import { AcceptInvitationCommandInput , AcceptInvitationCommandOutput } from "../commands/AcceptInvitationCommand" ; import { BatchDisableStandardsCommandInput , BatchDisableStandardsCommandOutput , } from "../commands/BatchDisableStandardsCommand" ; import { BatchEnableStandardsCommandInput , BatchEnableStandardsCommandOutput , } from "../commands/BatchEnableStandardsCommand" ; import { BatchImportFindingsCommandInput , BatchImportFindingsCommandOutput , } from "../commands/BatchImportFindingsCommand" ; import { BatchUpdateFindingsCommandInput , BatchUpdateFindingsCommandOutput , } from "../commands/BatchUpdateFindingsCommand" ; import { CreateActionTargetCommandInput , CreateActionTargetCommandOutput } from "../commands/CreateActionTargetCommand" ; import { CreateFindingAggregatorCommandInput , CreateFindingAggregatorCommandOutput , } from "../commands/CreateFindingAggregatorCommand" ; import { CreateInsightCommandInput , CreateInsightCommandOutput } from "../commands/CreateInsightCommand" ; import { CreateMembersCommandInput , CreateMembersCommandOutput } from "../commands/CreateMembersCommand" ; import { DeclineInvitationsCommandInput , DeclineInvitationsCommandOutput } from "../commands/DeclineInvitationsCommand" ; import { DeleteActionTargetCommandInput , DeleteActionTargetCommandOutput } from "../commands/DeleteActionTargetCommand" ; import { DeleteFindingAggregatorCommandInput , DeleteFindingAggregatorCommandOutput , } from "../commands/DeleteFindingAggregatorCommand" ; import { DeleteInsightCommandInput , DeleteInsightCommandOutput } from "../commands/DeleteInsightCommand" ; import { DeleteInvitationsCommandInput , DeleteInvitationsCommandOutput } from "../commands/DeleteInvitationsCommand" ; import { DeleteMembersCommandInput , DeleteMembersCommandOutput } from "../commands/DeleteMembersCommand" ; import { DescribeActionTargetsCommandInput , DescribeActionTargetsCommandOutput , } from "../commands/DescribeActionTargetsCommand" ; import { DescribeHubCommandInput , DescribeHubCommandOutput } from "../commands/DescribeHubCommand" ; import { DescribeOrganizationConfigurationCommandInput , DescribeOrganizationConfigurationCommandOutput , } from "../commands/DescribeOrganizationConfigurationCommand" ; import { DescribeProductsCommandInput , DescribeProductsCommandOutput } from "../commands/DescribeProductsCommand" ; import { DescribeStandardsCommandInput , DescribeStandardsCommandOutput } from "../commands/DescribeStandardsCommand" ; import { DescribeStandardsControlsCommandInput , DescribeStandardsControlsCommandOutput , } from "../commands/DescribeStandardsControlsCommand" ; import { DisableImportFindingsForProductCommandInput , DisableImportFindingsForProductCommandOutput , } from "../commands/DisableImportFindingsForProductCommand" ; import { DisableOrganizationAdminAccountCommandInput , DisableOrganizationAdminAccountCommandOutput , } from "../commands/DisableOrganizationAdminAccountCommand" ; import { DisableSecurityHubCommandInput , DisableSecurityHubCommandOutput } from "../commands/DisableSecurityHubCommand" ; import { DisassociateFromAdministratorAccountCommandInput , DisassociateFromAdministratorAccountCommandOutput , } from "../commands/DisassociateFromAdministratorAccountCommand" ; import { DisassociateFromMasterAccountCommandInput , DisassociateFromMasterAccountCommandOutput , } from "../commands/DisassociateFromMasterAccountCommand" ; import { DisassociateMembersCommandInput , DisassociateMembersCommandOutput , } from "../commands/DisassociateMembersCommand" ; import { EnableImportFindingsForProductCommandInput , EnableImportFindingsForProductCommandOutput , } from "../commands/EnableImportFindingsForProductCommand" ; import { EnableOrganizationAdminAccountCommandInput , EnableOrganizationAdminAccountCommandOutput , } from "../commands/EnableOrganizationAdminAccountCommand" ; import { EnableSecurityHubCommandInput , EnableSecurityHubCommandOutput } from "../commands/EnableSecurityHubCommand" ; import { GetAdministratorAccountCommandInput , GetAdministratorAccountCommandOutput , } from "../commands/GetAdministratorAccountCommand" ; import { GetEnabledStandardsCommandInput , GetEnabledStandardsCommandOutput , } from "../commands/GetEnabledStandardsCommand" ; import { GetFindingAggregatorCommandInput , GetFindingAggregatorCommandOutput , } from "../commands/GetFindingAggregatorCommand" ; import { GetFindingsCommandInput , GetFindingsCommandOutput } from "../commands/GetFindingsCommand" ; import { GetInsightResultsCommandInput , GetInsightResultsCommandOutput } from "../commands/GetInsightResultsCommand" ; import { GetInsightsCommandInput , GetInsightsCommandOutput } from "../commands/GetInsightsCommand" ; import { GetInvitationsCountCommandInput , GetInvitationsCountCommandOutput , } from "../commands/GetInvitationsCountCommand" ; import { GetMasterAccountCommandInput , GetMasterAccountCommandOutput } from "../commands/GetMasterAccountCommand" ; import { GetMembersCommandInput , GetMembersCommandOutput } from "../commands/GetMembersCommand" ; import { InviteMembersCommandInput , InviteMembersCommandOutput } from "../commands/InviteMembersCommand" ; import { ListEnabledProductsForImportCommandInput , ListEnabledProductsForImportCommandOutput , } from "../commands/ListEnabledProductsForImportCommand" ; import { ListFindingAggregatorsCommandInput , ListFindingAggregatorsCommandOutput , } from "../commands/ListFindingAggregatorsCommand" ; import { ListInvitationsCommandInput , ListInvitationsCommandOutput } from "../commands/ListInvitationsCommand" ; import { ListMembersCommandInput , ListMembersCommandOutput } from "../commands/ListMembersCommand" ; import { ListOrganizationAdminAccountsCommandInput , ListOrganizationAdminAccountsCommandOutput , } from "../commands/ListOrganizationAdminAccountsCommand" ; import { ListTagsForResourceCommandInput , ListTagsForResourceCommandOutput , } from "../commands/ListTagsForResourceCommand" ; import { TagResourceCommandInput , TagResourceCommandOutput } from "../commands/TagResourceCommand" ; import { UntagResourceCommandInput , UntagResourceCommandOutput } from "../commands/UntagResourceCommand" ; import { UpdateActionTargetCommandInput , UpdateActionTargetCommandOutput } from "../commands/UpdateActionTargetCommand" ; import { UpdateFindingAggregatorCommandInput , UpdateFindingAggregatorCommandOutput , } from "../commands/UpdateFindingAggregatorCommand" ; import { UpdateFindingsCommandInput , UpdateFindingsCommandOutput } from "../commands/UpdateFindingsCommand" ; import { UpdateInsightCommandInput , UpdateInsightCommandOutput } from "../commands/UpdateInsightCommand" ; import { UpdateOrganizationConfigurationCommandInput , UpdateOrganizationConfigurationCommandOutput , } from "../commands/UpdateOrganizationConfigurationCommand" ; import { UpdateSecurityHubConfigurationCommandInput , UpdateSecurityHubConfigurationCommandOutput , } from "../commands/UpdateSecurityHubConfigurationCommand" ; import { UpdateStandardsControlCommandInput , UpdateStandardsControlCommandOutput , } from "../commands/UpdateStandardsControlCommand" ; import { AccessDeniedException , AccountDetails , Action , ActionLocalIpDetails , ActionLocalPortDetails , ActionRemoteIpDetails , ActionRemotePortDetails , ActionTarget , Adjustment , AdminAccount , AvailabilityZone , AwsApiCallAction , AwsApiCallActionDomainDetails , AwsApiGatewayAccessLogSettings , AwsApiGatewayCanarySettings , AwsApiGatewayEndpointConfiguration , AwsApiGatewayMethodSettings , AwsApiGatewayRestApiDetails , AwsApiGatewayStageDetails , AwsApiGatewayV2ApiDetails , AwsApiGatewayV2RouteSettings , AwsApiGatewayV2StageDetails , AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails , AwsAutoScalingAutoScalingGroupDetails , AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails , AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails , AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails , AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification , AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails , AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails , AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails , AwsAutoScalingLaunchConfigurationDetails , AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails , AwsAutoScalingLaunchConfigurationMetadataOptions , AwsCertificateManagerCertificateDetails , AwsCertificateManagerCertificateDomainValidationOption , AwsCertificateManagerCertificateExtendedKeyUsage , AwsCertificateManagerCertificateKeyUsage , AwsCertificateManagerCertificateOptions , AwsCertificateManagerCertificateRenewalSummary , AwsCertificateManagerCertificateResourceRecord , AwsCloudFrontDistributionCacheBehavior , AwsCloudFrontDistributionCacheBehaviors , AwsCloudFrontDistributionDefaultCacheBehavior , AwsCloudFrontDistributionDetails , AwsCloudFrontDistributionLogging , AwsCloudFrontDistributionOriginGroup , AwsCloudFrontDistributionOriginGroupFailover , AwsCloudFrontDistributionOriginGroupFailoverStatusCodes , AwsCloudFrontDistributionOriginGroups , AwsCloudFrontDistributionOriginItem , AwsCloudFrontDistributionOrigins , AwsCloudFrontDistributionOriginS3OriginConfig , AwsCloudFrontDistributionViewerCertificate , AwsCloudTrailTrailDetails , AwsCodeBuildProjectArtifactsDetails , AwsCodeBuildProjectDetails , AwsCodeBuildProjectEnvironment , AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails , AwsCodeBuildProjectEnvironmentRegistryCredential , AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails , AwsCodeBuildProjectLogsConfigDetails , AwsCodeBuildProjectLogsConfigS3LogsDetails , AwsCodeBuildProjectSource , AwsCodeBuildProjectVpcConfig , AwsCorsConfiguration , AwsDynamoDbTableAttributeDefinition , AwsDynamoDbTableBillingModeSummary , AwsDynamoDbTableDetails , AwsDynamoDbTableGlobalSecondaryIndex , AwsDynamoDbTableKeySchema , AwsDynamoDbTableLocalSecondaryIndex , AwsDynamoDbTableProjection , AwsDynamoDbTableProvisionedThroughput , AwsDynamoDbTableProvisionedThroughputOverride , AwsDynamoDbTableReplica , AwsDynamoDbTableReplicaGlobalSecondaryIndex , AwsDynamoDbTableRestoreSummary , AwsDynamoDbTableSseDescription , AwsDynamoDbTableStreamSpecification , AwsEc2EipDetails , AwsEc2InstanceDetails , AwsEc2InstanceNetworkInterfacesDetails , AwsEc2NetworkAclAssociation , AwsEc2NetworkAclDetails , AwsEc2NetworkAclEntry , AwsEc2NetworkInterfaceAttachment , AwsEc2NetworkInterfaceDetails , AwsEc2NetworkInterfaceIpV6AddressDetail , AwsEc2NetworkInterfacePrivateIpAddressDetail , AwsEc2NetworkInterfaceSecurityGroup , AwsEc2SecurityGroupDetails , AwsEc2SecurityGroupIpPermission , AwsEc2SecurityGroupIpRange , AwsEc2SecurityGroupIpv6Range , AwsEc2SecurityGroupPrefixListId , AwsEc2SecurityGroupUserIdGroupPair , AwsEc2SubnetDetails , AwsEc2VolumeAttachment , AwsEc2VolumeDetails , AwsEc2VpcDetails , AwsEc2VpcEndpointServiceDetails , AwsEc2VpcEndpointServiceServiceTypeDetails , AwsEc2VpnConnectionDetails , AwsEc2VpnConnectionOptionsDetails , AwsEc2VpnConnectionOptionsTunnelOptionsDetails , AwsEc2VpnConnectionRoutesDetails , AwsEc2VpnConnectionVgwTelemetryDetails , AwsEcrContainerImageDetails , AwsEcrRepositoryDetails , AwsEcrRepositoryImageScanningConfigurationDetails , AwsEcrRepositoryLifecyclePolicyDetails , AwsEcsClusterClusterSettingsDetails , AwsEcsClusterConfigurationDetails , AwsEcsClusterConfigurationExecuteCommandConfigurationDetails , AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails , AwsEcsClusterDefaultCapacityProviderStrategyDetails , AwsEcsClusterDetails , AwsEcsServiceCapacityProviderStrategyDetails , AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails , AwsEcsServiceDeploymentConfigurationDetails , AwsEcsServiceDeploymentControllerDetails , AwsEcsServiceDetails , AwsEcsServiceLoadBalancersDetails , AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails , AwsEcsServiceNetworkConfigurationDetails , AwsEcsServicePlacementConstraintsDetails , AwsEcsServicePlacementStrategiesDetails , AwsEcsServiceServiceRegistriesDetails , AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails , AwsEcsTaskDefinitionContainerDefinitionsDetails , AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails , AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails , AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails , AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails , AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails , AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails , AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails , AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails , AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails , AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails , AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails , AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails , AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails , AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails , AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails , AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails , AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails , AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails , AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails , AwsEcsTaskDefinitionDetails , AwsEcsTaskDefinitionInferenceAcceleratorsDetails , AwsEcsTaskDefinitionPlacementConstraintsDetails , AwsEcsTaskDefinitionProxyConfigurationDetails , AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails , AwsEcsTaskDefinitionVolumesDetails , AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails , AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails , AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails , AwsEcsTaskDefinitionVolumesHostDetails , AwsEksClusterDetails , AwsEksClusterLoggingClusterLoggingDetails , AwsEksClusterLoggingDetails , AwsEksClusterResourcesVpcConfigDetails , AwsElasticBeanstalkEnvironmentDetails , AwsElasticBeanstalkEnvironmentEnvironmentLink , AwsElasticBeanstalkEnvironmentOptionSetting , AwsElasticBeanstalkEnvironmentTier , AwsElasticsearchDomainDetails , AwsElasticsearchDomainDomainEndpointOptions , AwsElasticsearchDomainElasticsearchClusterConfigDetails , AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails , AwsElasticsearchDomainEncryptionAtRestOptions , AwsElasticsearchDomainLogPublishingOptions , AwsElasticsearchDomainLogPublishingOptionsLogConfig , AwsElasticsearchDomainNodeToNodeEncryptionOptions , AwsElasticsearchDomainServiceSoftwareOptions , AwsElasticsearchDomainVPCOptions , AwsElbAppCookieStickinessPolicy , AwsElbLbCookieStickinessPolicy , AwsElbLoadBalancerAccessLog , AwsElbLoadBalancerAttributes , AwsElbLoadBalancerBackendServerDescription , AwsElbLoadBalancerConnectionDraining , AwsElbLoadBalancerConnectionSettings , AwsElbLoadBalancerCrossZoneLoadBalancing , AwsElbLoadBalancerDetails , AwsElbLoadBalancerHealthCheck , AwsElbLoadBalancerInstance , AwsElbLoadBalancerListener , AwsElbLoadBalancerListenerDescription , AwsElbLoadBalancerPolicies , AwsElbLoadBalancerSourceSecurityGroup , AwsElbv2LoadBalancerAttribute , AwsElbv2LoadBalancerDetails , AwsIamAccessKeyDetails , AwsIamAccessKeySessionContext , AwsIamAccessKeySessionContextAttributes , AwsIamAccessKeySessionContextSessionIssuer , AwsIamAttachedManagedPolicy , AwsIamGroupDetails , AwsIamGroupPolicy , AwsIamInstanceProfile , AwsIamInstanceProfileRole , AwsIamPermissionsBoundary , AwsIamPolicyDetails , AwsIamPolicyVersion , AwsIamRoleDetails , AwsIamRolePolicy , AwsIamUserDetails , AwsIamUserPolicy , AwsKmsKeyDetails , AwsLambdaFunctionCode , AwsLambdaFunctionDeadLetterConfig , AwsLambdaFunctionDetails , AwsLambdaFunctionEnvironment , AwsLambdaFunctionEnvironmentError , AwsLambdaFunctionLayer , AwsLambdaFunctionTracingConfig , AwsLambdaFunctionVpcConfig , AwsLambdaLayerVersionDetails , AwsNetworkFirewallFirewallDetails , AwsNetworkFirewallFirewallPolicyDetails , AwsNetworkFirewallFirewallSubnetMappingsDetails , AwsNetworkFirewallRuleGroupDetails , AwsOpenSearchServiceDomainClusterConfigDetails , AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails , AwsOpenSearchServiceDomainDetails , AwsOpenSearchServiceDomainDomainEndpointOptionsDetails , AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails , AwsOpenSearchServiceDomainLogPublishingOption , AwsOpenSearchServiceDomainLogPublishingOptionsDetails , AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails , AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails , AwsOpenSearchServiceDomainVpcOptionsDetails , AwsRdsDbClusterAssociatedRole , AwsRdsDbClusterDetails , AwsRdsDbClusterMember , AwsRdsDbClusterOptionGroupMembership , AwsRdsDbClusterSnapshotDetails , AwsRdsDbDomainMembership , AwsRdsDbInstanceAssociatedRole , AwsRdsDbInstanceEndpoint , AwsRdsDbInstanceVpcSecurityGroup , AwsRdsDbOptionGroupMembership , AwsRdsDbParameterGroup , AwsRdsDbSubnetGroup , AwsRdsDbSubnetGroupSubnet , AwsRdsDbSubnetGroupSubnetAvailabilityZone , AwsRdsPendingCloudWatchLogsExports , CidrBlockAssociation , City , Country , DnsRequestAction , FirewallPolicyDetails , FirewallPolicyStatefulRuleGroupReferencesDetails , FirewallPolicyStatelessCustomActionsDetails , FirewallPolicyStatelessRuleGroupReferencesDetails , GeoLocation , IcmpTypeCode , InternalException , InvalidAccessException , InvalidInputException , IpOrganizationDetails , Ipv6CidrBlockAssociation , LimitExceededException , LoadBalancerState , NetworkConnectionAction , PortProbeAction , PortProbeDetail , PortRangeFromTo , ResourceNotFoundException , RuleGroupDetails , RuleGroupSource , RuleGroupSourceCustomActionsDetails , RuleGroupSourceListDetails , RuleGroupSourceStatefulRulesDetails , RuleGroupSourceStatefulRulesHeaderDetails , RuleGroupSourceStatefulRulesOptionsDetails , RuleGroupSourceStatelessRuleDefinition , RuleGroupSourceStatelessRuleMatchAttributes , RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts , RuleGroupSourceStatelessRuleMatchAttributesDestinations , RuleGroupSourceStatelessRuleMatchAttributesSourcePorts , RuleGroupSourceStatelessRuleMatchAttributesSources , RuleGroupSourceStatelessRuleMatchAttributesTcpFlags , RuleGroupSourceStatelessRulesAndCustomActionsDetails , RuleGroupSourceStatelessRulesDetails , RuleGroupVariables , RuleGroupVariablesIpSetsDetails , RuleGroupVariablesPortSetsDetails , StatelessCustomActionDefinition , StatelessCustomPublishMetricAction , StatelessCustomPublishMetricActionDimension , } from "../models/models_0" ; import { _Record , AwsRdsDbInstanceDetails , AwsRdsDbPendingModifiedValues , AwsRdsDbProcessorFeature , AwsRdsDbSnapshotDetails , AwsRdsDbStatusInfo , AwsRdsEventSubscriptionDetails , AwsRedshiftClusterClusterNode , AwsRedshiftClusterClusterParameterGroup , AwsRedshiftClusterClusterParameterStatus , AwsRedshiftClusterClusterSecurityGroup , AwsRedshiftClusterClusterSnapshotCopyStatus , AwsRedshiftClusterDeferredMaintenanceWindow , AwsRedshiftClusterDetails , AwsRedshiftClusterElasticIpStatus , AwsRedshiftClusterEndpoint , AwsRedshiftClusterHsmStatus , AwsRedshiftClusterIamRole , AwsRedshiftClusterPendingModifiedValues , AwsRedshiftClusterResizeInfo , AwsRedshiftClusterRestoreStatus , AwsRedshiftClusterVpcSecurityGroup , AwsS3AccountPublicAccessBlockDetails , AwsS3BucketBucketLifecycleConfigurationDetails , AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails , AwsS3BucketBucketLifecycleConfigurationRulesDetails , AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails , AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails , AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails , AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails , AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails , AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails , AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails , AwsS3BucketBucketVersioningConfiguration , AwsS3BucketDetails , AwsS3BucketLoggingConfiguration , AwsS3BucketNotificationConfiguration , AwsS3BucketNotificationConfigurationDetail , AwsS3BucketNotificationConfigurationFilter , AwsS3BucketNotificationConfigurationS3KeyFilter , AwsS3BucketNotificationConfigurationS3KeyFilterRule , AwsS3BucketServerSideEncryptionByDefault , AwsS3BucketServerSideEncryptionConfiguration , AwsS3BucketServerSideEncryptionRule , AwsS3BucketWebsiteConfiguration , AwsS3BucketWebsiteConfigurationRedirectTo , AwsS3BucketWebsiteConfigurationRoutingRule , AwsS3BucketWebsiteConfigurationRoutingRuleCondition , AwsS3BucketWebsiteConfigurationRoutingRuleRedirect , AwsS3ObjectDetails , AwsSecretsManagerSecretDetails , AwsSecretsManagerSecretRotationRules , AwsSecurityFinding , AwsSecurityFindingFilters , AwsSecurityFindingIdentifier , AwsSnsTopicDetails , AwsSnsTopicSubscription , AwsSqsQueueDetails , AwsSsmComplianceSummary , AwsSsmPatch , AwsSsmPatchComplianceDetails , AwsWafRateBasedRuleDetails , AwsWafRateBasedRuleMatchPredicate , AwsWafRegionalRateBasedRuleDetails , AwsWafRegionalRateBasedRuleMatchPredicate , AwsWafWebAclDetails , AwsWafWebAclRule , AwsXrayEncryptionConfigDetails , BatchUpdateFindingsUnprocessedFinding , Cell , ClassificationResult , ClassificationStatus , Compliance , ContainerDetails , CustomDataIdentifiersDetections , CustomDataIdentifiersResult , Cvss , DataClassificationDetails , DateFilter , DateRange , FindingAggregator , FindingProviderFields , FindingProviderSeverity , ImportFindingsError , Insight , InsightResults , InsightResultValue , IntegrationType , Invitation , IpFilter , KeywordFilter , Malware , MapFilter , Member , Network , NetworkHeader , NetworkPathComponent , NetworkPathComponentDetails , Note , NoteUpdate , NumberFilter , Occurrences , Page , PatchSummary , PortRange , ProcessDetails , Product , Range , Recommendation , RelatedFinding , Remediation , Resource , ResourceConflictException , ResourceDetails , Result , SensitiveDataDetections , SensitiveDataResult , Severity , SeverityUpdate , SoftwarePackage , SortCriterion , Standard , StandardsControl , StandardsStatusReason , StandardsSubscription , StandardsSubscriptionRequest , StatusReason , StringFilter , ThreatIntelIndicator , Vulnerability , VulnerabilityVendor , WafAction , WafExcludedRule , WafOverrideAction , Workflow , WorkflowUpdate , } from "../models/models_1" ; export const serializeAws_restJson1AcceptAdministratorInvitationCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/administrator" ; let body ; body = JSON . stringify ( { ... ( input . AdministratorId !== undefined && input . AdministratorId !== null && { AdministratorId : input . AdministratorId } ) , ... ( input . InvitationId !== undefined && input . InvitationId !== null && { InvitationId : input . InvitationId } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1AcceptInvitationCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/master" ; let body ; body = JSON . stringify ( { ... ( input . InvitationId !== undefined && input . InvitationId !== null && { InvitationId : input . InvitationId } ) , ... ( input . MasterId !== undefined && input . MasterId !== null && { MasterId : input . MasterId } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1BatchDisableStandardsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards/deregister" ; let body ; body = JSON . stringify ( { ... ( input . StandardsSubscriptionArns !== undefined && input . StandardsSubscriptionArns !== null && { StandardsSubscriptionArns : serializeAws_restJson1StandardsSubscriptionArns ( input . StandardsSubscriptionArns , context ) , } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1BatchEnableStandardsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards/register" ; let body ; body = JSON . stringify ( { ... ( input . StandardsSubscriptionRequests !== undefined && input . StandardsSubscriptionRequests !== null && { StandardsSubscriptionRequests : serializeAws_restJson1StandardsSubscriptionRequests ( input . StandardsSubscriptionRequests , context ) , } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1BatchImportFindingsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findings/import" ; let body ; body = JSON . stringify ( { ... ( input . Findings !== undefined && input . Findings !== null && { Findings : serializeAws_restJson1BatchImportFindingsRequestFindingList ( input . Findings , context ) , } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1BatchUpdateFindingsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findings/batchupdate" ; let body ; body = JSON . stringify ( { ... ( input . Confidence !== undefined && input . Confidence !== null && { Confidence : input . Confidence } ) , ... ( input . Criticality !== undefined && input . Criticality !== null && { Criticality : input . Criticality } ) , ... ( input . FindingIdentifiers !== undefined && input . FindingIdentifiers !== null && { FindingIdentifiers : serializeAws_restJson1AwsSecurityFindingIdentifierList ( input . FindingIdentifiers , context ) , } ) , ... ( input . Note !== undefined && input . Note !== null && { Note : serializeAws_restJson1NoteUpdate ( input . Note , context ) } ) , ... ( input . RelatedFindings !== undefined && input . RelatedFindings !== null && { RelatedFindings : serializeAws_restJson1RelatedFindingList ( input . RelatedFindings , context ) , } ) , ... ( input . Severity !== undefined && input . Severity !== null && { Severity : serializeAws_restJson1SeverityUpdate ( input . Severity , context ) } ) , ... ( input . Types !== undefined && input . Types !== null && { Types : serializeAws_restJson1TypeList ( input . Types , context ) } ) , ... ( input . UserDefinedFields !== undefined && input . UserDefinedFields !== null && { UserDefinedFields : serializeAws_restJson1FieldMap ( input . UserDefinedFields , context ) , } ) , ... ( input . VerificationState !== undefined && input . VerificationState !== null && { VerificationState : input . VerificationState } ) , ... ( input . Workflow !== undefined && input . Workflow !== null && { Workflow : serializeAws_restJson1WorkflowUpdate ( input . Workflow , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1CreateActionTargetCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/actionTargets" ; let body ; body = JSON . stringify ( { ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1CreateFindingAggregatorCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findingAggregator/create" ; let body ; body = JSON . stringify ( { ... ( input . RegionLinkingMode !== undefined && input . RegionLinkingMode !== null && { RegionLinkingMode : input . RegionLinkingMode } ) , ... ( input . Regions !== undefined && input . Regions !== null && { Regions : serializeAws_restJson1StringList ( input . Regions , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1CreateInsightCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/insights" ; let body ; body = JSON . stringify ( { ... ( input . Filters !== undefined && input . Filters !== null && { Filters : serializeAws_restJson1AwsSecurityFindingFilters ( input . Filters , context ) } ) , ... ( input . GroupByAttribute !== undefined && input . GroupByAttribute !== null && { GroupByAttribute : input . GroupByAttribute } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1CreateMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members" ; let body ; body = JSON . stringify ( { ... ( input . AccountDetails !== undefined && input . AccountDetails !== null && { AccountDetails : serializeAws_restJson1AccountDetailsList ( input . AccountDetails , context ) , } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeclineInvitationsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/invitations/decline" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeleteActionTargetCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/actionTargets/{ActionTargetArn+}" ; if ( input . ActionTargetArn !== undefined ) { const labelValue = input . ActionTargetArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ActionTargetArn." ) ; } resolvedPath = resolvedPath . replace ( "{ActionTargetArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ActionTargetArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeleteFindingAggregatorCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findingAggregator/delete/{FindingAggregatorArn+}" ; if ( input . FindingAggregatorArn !== undefined ) { const labelValue = input . FindingAggregatorArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: FindingAggregatorArn." ) ; } resolvedPath = resolvedPath . replace ( "{FindingAggregatorArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: FindingAggregatorArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeleteInsightCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/insights/{InsightArn+}" ; if ( input . InsightArn !== undefined ) { const labelValue = input . InsightArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: InsightArn." ) ; } resolvedPath = resolvedPath . replace ( "{InsightArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: InsightArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeleteInvitationsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/invitations/delete" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DeleteMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members/delete" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DescribeActionTargetsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/actionTargets/get" ; let body ; body = JSON . stringify ( { ... ( input . ActionTargetArns !== undefined && input . ActionTargetArns !== null && { ActionTargetArns : serializeAws_restJson1ArnList ( input . ActionTargetArns , context ) , } ) , ... ( input . MaxResults !== undefined && input . MaxResults !== null && { MaxResults : input . MaxResults } ) , ... ( input . NextToken !== undefined && input . NextToken !== null && { NextToken : input . NextToken } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DescribeHubCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/accounts" ; const query = { ... ( input . HubArn !== undefined && { HubArn : input . HubArn } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1DescribeOrganizationConfigurationCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/organization/configuration" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DescribeProductsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/products" ; const query = { ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , ... ( input . ProductArn !== undefined && { ProductArn : input . ProductArn } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1DescribeStandardsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards" ; const query = { ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1DescribeStandardsControlsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards/controls/{StandardsSubscriptionArn+}" ; if ( input . StandardsSubscriptionArn !== undefined ) { const labelValue = input . StandardsSubscriptionArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: StandardsSubscriptionArn." ) ; } resolvedPath = resolvedPath . replace ( "{StandardsSubscriptionArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: StandardsSubscriptionArn." ) ; } const query = { ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1DisableImportFindingsForProductCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/productSubscriptions/{ProductSubscriptionArn+}" ; if ( input . ProductSubscriptionArn !== undefined ) { const labelValue = input . ProductSubscriptionArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ProductSubscriptionArn." ) ; } resolvedPath = resolvedPath . replace ( "{ProductSubscriptionArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ProductSubscriptionArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DisableOrganizationAdminAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/organization/admin/disable" ; let body ; body = JSON . stringify ( { ... ( input . AdminAccountId !== undefined && input . AdminAccountId !== null && { AdminAccountId : input . AdminAccountId } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DisableSecurityHubCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/accounts" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DisassociateFromAdministratorAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/administrator/disassociate" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DisassociateFromMasterAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/master/disassociate" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1DisassociateMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members/disassociate" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1EnableImportFindingsForProductCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/productSubscriptions" ; let body ; body = JSON . stringify ( { ... ( input . ProductArn !== undefined && input . ProductArn !== null && { ProductArn : input . ProductArn } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1EnableOrganizationAdminAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/organization/admin/enable" ; let body ; body = JSON . stringify ( { ... ( input . AdminAccountId !== undefined && input . AdminAccountId !== null && { AdminAccountId : input . AdminAccountId } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1EnableSecurityHubCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/accounts" ; let body ; body = JSON . stringify ( { ... ( input . EnableDefaultStandards !== undefined && input . EnableDefaultStandards !== null && { EnableDefaultStandards : input . EnableDefaultStandards } ) , ... ( input . Tags !== undefined && input . Tags !== null && { Tags : serializeAws_restJson1TagMap ( input . Tags , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetAdministratorAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/administrator" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetEnabledStandardsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards/get" ; let body ; body = JSON . stringify ( { ... ( input . MaxResults !== undefined && input . MaxResults !== null && { MaxResults : input . MaxResults } ) , ... ( input . NextToken !== undefined && input . NextToken !== null && { NextToken : input . NextToken } ) , ... ( input . StandardsSubscriptionArns !== undefined && input . StandardsSubscriptionArns !== null && { StandardsSubscriptionArns : serializeAws_restJson1StandardsSubscriptionArns ( input . StandardsSubscriptionArns , context ) , } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetFindingAggregatorCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findingAggregator/get/{FindingAggregatorArn+}" ; if ( input . FindingAggregatorArn !== undefined ) { const labelValue = input . FindingAggregatorArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: FindingAggregatorArn." ) ; } resolvedPath = resolvedPath . replace ( "{FindingAggregatorArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: FindingAggregatorArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetFindingsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findings" ; let body ; body = JSON . stringify ( { ... ( input . Filters !== undefined && input . Filters !== null && { Filters : serializeAws_restJson1AwsSecurityFindingFilters ( input . Filters , context ) } ) , ... ( input . MaxResults !== undefined && input . MaxResults !== null && { MaxResults : input . MaxResults } ) , ... ( input . NextToken !== undefined && input . NextToken !== null && { NextToken : input . NextToken } ) , ... ( input . SortCriteria !== undefined && input . SortCriteria !== null && { SortCriteria : serializeAws_restJson1SortCriteria ( input . SortCriteria , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetInsightResultsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/insights/results/{InsightArn+}" ; if ( input . InsightArn !== undefined ) { const labelValue = input . InsightArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: InsightArn." ) ; } resolvedPath = resolvedPath . replace ( "{InsightArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: InsightArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetInsightsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/insights/get" ; let body ; body = JSON . stringify ( { ... ( input . InsightArns !== undefined && input . InsightArns !== null && { InsightArns : serializeAws_restJson1ArnList ( input . InsightArns , context ) } ) , ... ( input . MaxResults !== undefined && input . MaxResults !== null && { MaxResults : input . MaxResults } ) , ... ( input . NextToken !== undefined && input . NextToken !== null && { NextToken : input . NextToken } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetInvitationsCountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/invitations/count" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetMasterAccountCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/master" ; let body ; body = "" ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1GetMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members/get" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1InviteMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members/invite" ; let body ; body = JSON . stringify ( { ... ( input . AccountIds !== undefined && input . AccountIds !== null && { AccountIds : serializeAws_restJson1AccountIdList ( input . AccountIds , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1ListEnabledProductsForImportCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/productSubscriptions" ; const query = { ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1ListFindingAggregatorsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findingAggregator/list" ; const query = { ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1ListInvitationsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/invitations" ; const query = { ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1ListMembersCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/members" ; const query = { ... ( input . OnlyAssociated !== undefined && { OnlyAssociated : input . OnlyAssociated . toString ( ) } ) , ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1ListOrganizationAdminAccountsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/organization/admin" ; const query = { ... ( input . MaxResults !== undefined && { MaxResults : input . MaxResults . toString ( ) } ) , ... ( input . NextToken !== undefined && { NextToken : input . NextToken } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1ListTagsForResourceCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/tags/{ResourceArn}" ; if ( input . ResourceArn !== undefined ) { const labelValue = input . ResourceArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ResourceArn." ) ; } resolvedPath = resolvedPath . replace ( "{ResourceArn}" , __extendedEncodeURIComponent ( labelValue ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ResourceArn." ) ; } let body ; return new __HttpRequest ( { protocol , hostname , port , method : "GET" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1TagResourceCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/tags/{ResourceArn}" ; if ( input . ResourceArn !== undefined ) { const labelValue = input . ResourceArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ResourceArn." ) ; } resolvedPath = resolvedPath . replace ( "{ResourceArn}" , __extendedEncodeURIComponent ( labelValue ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ResourceArn." ) ; } let body ; body = JSON . stringify ( { ... ( input . Tags !== undefined && input . Tags !== null && { Tags : serializeAws_restJson1TagMap ( input . Tags , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UntagResourceCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/tags/{ResourceArn}" ; if ( input . ResourceArn !== undefined ) { const labelValue = input . ResourceArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ResourceArn." ) ; } resolvedPath = resolvedPath . replace ( "{ResourceArn}" , __extendedEncodeURIComponent ( labelValue ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ResourceArn." ) ; } const query = { ... ( input . TagKeys !== undefined && { tagKeys : ( input . TagKeys || [ ] ) . map ( ( _entry ) => _entry as any ) } ) , } ; let body ; return new __HttpRequest ( { protocol , hostname , port , method : "DELETE" , headers , path : resolvedPath , query , body , } ) ; } ; export const serializeAws_restJson1UpdateActionTargetCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/actionTargets/{ActionTargetArn+}" ; if ( input . ActionTargetArn !== undefined ) { const labelValue = input . ActionTargetArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: ActionTargetArn." ) ; } resolvedPath = resolvedPath . replace ( "{ActionTargetArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: ActionTargetArn." ) ; } let body ; body = JSON . stringify ( { ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateFindingAggregatorCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findingAggregator/update" ; let body ; body = JSON . stringify ( { ... ( input . FindingAggregatorArn !== undefined && input . FindingAggregatorArn !== null && { FindingAggregatorArn : input . FindingAggregatorArn } ) , ... ( input . RegionLinkingMode !== undefined && input . RegionLinkingMode !== null && { RegionLinkingMode : input . RegionLinkingMode } ) , ... ( input . Regions !== undefined && input . Regions !== null && { Regions : serializeAws_restJson1StringList ( input . Regions , context ) } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateFindingsCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/findings" ; let body ; body = JSON . stringify ( { ... ( input . Filters !== undefined && input . Filters !== null && { Filters : serializeAws_restJson1AwsSecurityFindingFilters ( input . Filters , context ) } ) , ... ( input . Note !== undefined && input . Note !== null && { Note : serializeAws_restJson1NoteUpdate ( input . Note , context ) } ) , ... ( input . RecordState !== undefined && input . RecordState !== null && { RecordState : input . RecordState } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateInsightCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/insights/{InsightArn+}" ; if ( input . InsightArn !== undefined ) { const labelValue = input . InsightArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: InsightArn." ) ; } resolvedPath = resolvedPath . replace ( "{InsightArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: InsightArn." ) ; } let body ; body = JSON . stringify ( { ... ( input . Filters !== undefined && input . Filters !== null && { Filters : serializeAws_restJson1AwsSecurityFindingFilters ( input . Filters , context ) } ) , ... ( input . GroupByAttribute !== undefined && input . GroupByAttribute !== null && { GroupByAttribute : input . GroupByAttribute } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateOrganizationConfigurationCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/organization/configuration" ; let body ; body = JSON . stringify ( { ... ( input . AutoEnable !== undefined && input . AutoEnable !== null && { AutoEnable : input . AutoEnable } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "POST" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateSecurityHubConfigurationCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; const resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/accounts" ; let body ; body = JSON . stringify ( { ... ( input . AutoEnableControls !== undefined && input . AutoEnableControls !== null && { AutoEnableControls : input . AutoEnableControls } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const serializeAws_restJson1UpdateStandardsControlCommand = async ( input , context ) : Promise < __HttpRequest > => { const { hostname , protocol = "https" , port , path : basePath } = await context . endpoint ( ) ; const headers = { "content-type" : "application/json" , } ; let resolvedPath = `${ basePath ?. endsWith ( "/" ) ? basePath . slice ( 0 , - 1 ) : basePath || "" }` + "/standards/control/{StandardsControlArn+}" ; if ( input . StandardsControlArn !== undefined ) { const labelValue = input . StandardsControlArn ; if ( labelValue . length <= 0 ) { throw new Error ( "Empty value provided for input HTTP label: StandardsControlArn." ) ; } resolvedPath = resolvedPath . replace ( "{StandardsControlArn+}" , labelValue . split ( "/" ) . map ( ( segment ) => __extendedEncodeURIComponent ( segment ) ) . join ( "/" ) ) ; } else { throw new Error ( "No value provided for input HTTP label: StandardsControlArn." ) ; } let body ; body = JSON . stringify ( { ... ( input . ControlStatus !== undefined && input . ControlStatus !== null && { ControlStatus : input . ControlStatus } ) , ... ( input . DisabledReason !== undefined && input . DisabledReason !== null && { DisabledReason : input . DisabledReason } ) , } ) ; return new __HttpRequest ( { protocol , hostname , port , method : "PATCH" , headers , path : resolvedPath , body , } ) ; } ; export const deserializeAws_restJson1AcceptAdministratorInvitationCommand = async ( output , context ) : Promise < AcceptAdministratorInvitationCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1AcceptAdministratorInvitationCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1AcceptAdministratorInvitationCommandError = async ( output , context ) : Promise < AcceptAdministratorInvitationCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1AcceptInvitationCommand = async ( output , context ) : Promise < AcceptInvitationCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1AcceptInvitationCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1AcceptInvitationCommandError = async ( output , context ) : Promise < AcceptInvitationCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1BatchDisableStandardsCommand = async ( output , context ) : Promise < BatchDisableStandardsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1BatchDisableStandardsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , StandardsSubscriptions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . StandardsSubscriptions !== undefined && data . StandardsSubscriptions !== null ) { contents . StandardsSubscriptions = deserializeAws_restJson1StandardsSubscriptions ( data . StandardsSubscriptions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1BatchDisableStandardsCommandError = async ( output , context ) : Promise < BatchDisableStandardsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1BatchEnableStandardsCommand = async ( output , context ) : Promise < BatchEnableStandardsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1BatchEnableStandardsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , StandardsSubscriptions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . StandardsSubscriptions !== undefined && data . StandardsSubscriptions !== null ) { contents . StandardsSubscriptions = deserializeAws_restJson1StandardsSubscriptions ( data . StandardsSubscriptions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1BatchEnableStandardsCommandError = async ( output , context ) : Promise < BatchEnableStandardsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1BatchImportFindingsCommand = async ( output , context ) : Promise < BatchImportFindingsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1BatchImportFindingsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , FailedCount : undefined , FailedFindings : undefined , SuccessCount : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . FailedCount !== undefined && data . FailedCount !== null ) { contents . FailedCount = __expectInt32 ( data . FailedCount ) ; } if ( data . FailedFindings !== undefined && data . FailedFindings !== null ) { contents . FailedFindings = deserializeAws_restJson1ImportFindingsErrorList ( data . FailedFindings , context ) ; } if ( data . SuccessCount !== undefined && data . SuccessCount !== null ) { contents . SuccessCount = __expectInt32 ( data . SuccessCount ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1BatchImportFindingsCommandError = async ( output , context ) : Promise < BatchImportFindingsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1BatchUpdateFindingsCommand = async ( output , context ) : Promise < BatchUpdateFindingsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1BatchUpdateFindingsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , ProcessedFindings : undefined , UnprocessedFindings : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . ProcessedFindings !== undefined && data . ProcessedFindings !== null ) { contents . ProcessedFindings = deserializeAws_restJson1AwsSecurityFindingIdentifierList ( data . ProcessedFindings , context ) ; } if ( data . UnprocessedFindings !== undefined && data . UnprocessedFindings !== null ) { contents . UnprocessedFindings = deserializeAws_restJson1BatchUpdateFindingsUnprocessedFindingsList ( data . UnprocessedFindings , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1BatchUpdateFindingsCommandError = async ( output , context ) : Promise < BatchUpdateFindingsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1CreateActionTargetCommand = async ( output , context ) : Promise < CreateActionTargetCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1CreateActionTargetCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , ActionTargetArn : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . ActionTargetArn !== undefined && data . ActionTargetArn !== null ) { contents . ActionTargetArn = __expectString ( data . ActionTargetArn ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1CreateActionTargetCommandError = async ( output , context ) : Promise < CreateActionTargetCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceConflictException" : case "com.amazonaws.securityhub#ResourceConflictException" : response = { ... ( await deserializeAws_restJson1ResourceConflictExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1CreateFindingAggregatorCommand = async ( output , context ) : Promise < CreateFindingAggregatorCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1CreateFindingAggregatorCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , FindingAggregationRegion : undefined , FindingAggregatorArn : undefined , RegionLinkingMode : undefined , Regions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . FindingAggregationRegion !== undefined && data . FindingAggregationRegion !== null ) { contents . FindingAggregationRegion = __expectString ( data . FindingAggregationRegion ) ; } if ( data . FindingAggregatorArn !== undefined && data . FindingAggregatorArn !== null ) { contents . FindingAggregatorArn = __expectString ( data . FindingAggregatorArn ) ; } if ( data . RegionLinkingMode !== undefined && data . RegionLinkingMode !== null ) { contents . RegionLinkingMode = __expectString ( data . RegionLinkingMode ) ; } if ( data . Regions !== undefined && data . Regions !== null ) { contents . Regions = deserializeAws_restJson1StringList ( data . Regions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1CreateFindingAggregatorCommandError = async ( output , context ) : Promise < CreateFindingAggregatorCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1CreateInsightCommand = async ( output , context ) : Promise < CreateInsightCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1CreateInsightCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , InsightArn : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . InsightArn !== undefined && data . InsightArn !== null ) { contents . InsightArn = __expectString ( data . InsightArn ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1CreateInsightCommandError = async ( output , context ) : Promise < CreateInsightCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceConflictException" : case "com.amazonaws.securityhub#ResourceConflictException" : response = { ... ( await deserializeAws_restJson1ResourceConflictExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1CreateMembersCommand = async ( output , context ) : Promise < CreateMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1CreateMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1CreateMembersCommandError = async ( output , context ) : Promise < CreateMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceConflictException" : case "com.amazonaws.securityhub#ResourceConflictException" : response = { ... ( await deserializeAws_restJson1ResourceConflictExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeclineInvitationsCommand = async ( output , context ) : Promise < DeclineInvitationsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeclineInvitationsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeclineInvitationsCommandError = async ( output , context ) : Promise < DeclineInvitationsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeleteActionTargetCommand = async ( output , context ) : Promise < DeleteActionTargetCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeleteActionTargetCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , ActionTargetArn : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . ActionTargetArn !== undefined && data . ActionTargetArn !== null ) { contents . ActionTargetArn = __expectString ( data . ActionTargetArn ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeleteActionTargetCommandError = async ( output , context ) : Promise < DeleteActionTargetCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeleteFindingAggregatorCommand = async ( output , context ) : Promise < DeleteFindingAggregatorCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeleteFindingAggregatorCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeleteFindingAggregatorCommandError = async ( output , context ) : Promise < DeleteFindingAggregatorCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeleteInsightCommand = async ( output , context ) : Promise < DeleteInsightCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeleteInsightCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , InsightArn : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . InsightArn !== undefined && data . InsightArn !== null ) { contents . InsightArn = __expectString ( data . InsightArn ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeleteInsightCommandError = async ( output , context ) : Promise < DeleteInsightCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeleteInvitationsCommand = async ( output , context ) : Promise < DeleteInvitationsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeleteInvitationsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeleteInvitationsCommandError = async ( output , context ) : Promise < DeleteInvitationsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DeleteMembersCommand = async ( output , context ) : Promise < DeleteMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DeleteMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DeleteMembersCommandError = async ( output , context ) : Promise < DeleteMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeActionTargetsCommand = async ( output , context ) : Promise < DescribeActionTargetsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeActionTargetsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , ActionTargets : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . ActionTargets !== undefined && data . ActionTargets !== null ) { contents . ActionTargets = deserializeAws_restJson1ActionTargetList ( data . ActionTargets , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeActionTargetsCommandError = async ( output , context ) : Promise < DescribeActionTargetsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeHubCommand = async ( output , context ) : Promise < DescribeHubCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeHubCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , AutoEnableControls : undefined , HubArn : undefined , SubscribedAt : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . AutoEnableControls !== undefined && data . AutoEnableControls !== null ) { contents . AutoEnableControls = __expectBoolean ( data . AutoEnableControls ) ; } if ( data . HubArn !== undefined && data . HubArn !== null ) { contents . HubArn = __expectString ( data . HubArn ) ; } if ( data . SubscribedAt !== undefined && data . SubscribedAt !== null ) { contents . SubscribedAt = __expectString ( data . SubscribedAt ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeHubCommandError = async ( output , context ) : Promise < DescribeHubCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeOrganizationConfigurationCommand = async ( output , context ) : Promise < DescribeOrganizationConfigurationCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeOrganizationConfigurationCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , AutoEnable : undefined , MemberAccountLimitReached : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . AutoEnable !== undefined && data . AutoEnable !== null ) { contents . AutoEnable = __expectBoolean ( data . AutoEnable ) ; } if ( data . MemberAccountLimitReached !== undefined && data . MemberAccountLimitReached !== null ) { contents . MemberAccountLimitReached = __expectBoolean ( data . MemberAccountLimitReached ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeOrganizationConfigurationCommandError = async ( output , context ) : Promise < DescribeOrganizationConfigurationCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeProductsCommand = async ( output , context ) : Promise < DescribeProductsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeProductsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , NextToken : undefined , Products : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } if ( data . Products !== undefined && data . Products !== null ) { contents . Products = deserializeAws_restJson1ProductsList ( data . Products , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeProductsCommandError = async ( output , context ) : Promise < DescribeProductsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeStandardsCommand = async ( output , context ) : Promise < DescribeStandardsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeStandardsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , NextToken : undefined , Standards : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } if ( data . Standards !== undefined && data . Standards !== null ) { contents . Standards = deserializeAws_restJson1Standards ( data . Standards , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeStandardsCommandError = async ( output , context ) : Promise < DescribeStandardsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DescribeStandardsControlsCommand = async ( output , context ) : Promise < DescribeStandardsControlsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DescribeStandardsControlsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Controls : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Controls !== undefined && data . Controls !== null ) { contents . Controls = deserializeAws_restJson1StandardsControls ( data . Controls , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DescribeStandardsControlsCommandError = async ( output , context ) : Promise < DescribeStandardsControlsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisableImportFindingsForProductCommand = async ( output , context ) : Promise < DisableImportFindingsForProductCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisableImportFindingsForProductCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisableImportFindingsForProductCommandError = async ( output , context ) : Promise < DisableImportFindingsForProductCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisableOrganizationAdminAccountCommand = async ( output , context ) : Promise < DisableOrganizationAdminAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisableOrganizationAdminAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisableOrganizationAdminAccountCommandError = async ( output , context ) : Promise < DisableOrganizationAdminAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisableSecurityHubCommand = async ( output , context ) : Promise < DisableSecurityHubCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisableSecurityHubCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisableSecurityHubCommandError = async ( output , context ) : Promise < DisableSecurityHubCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisassociateFromAdministratorAccountCommand = async ( output , context ) : Promise < DisassociateFromAdministratorAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisassociateFromAdministratorAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisassociateFromAdministratorAccountCommandError = async ( output , context ) : Promise < DisassociateFromAdministratorAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisassociateFromMasterAccountCommand = async ( output , context ) : Promise < DisassociateFromMasterAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisassociateFromMasterAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisassociateFromMasterAccountCommandError = async ( output , context ) : Promise < DisassociateFromMasterAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1DisassociateMembersCommand = async ( output , context ) : Promise < DisassociateMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1DisassociateMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1DisassociateMembersCommandError = async ( output , context ) : Promise < DisassociateMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1EnableImportFindingsForProductCommand = async ( output , context ) : Promise < EnableImportFindingsForProductCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1EnableImportFindingsForProductCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , ProductSubscriptionArn : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . ProductSubscriptionArn !== undefined && data . ProductSubscriptionArn !== null ) { contents . ProductSubscriptionArn = __expectString ( data . ProductSubscriptionArn ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1EnableImportFindingsForProductCommandError = async ( output , context ) : Promise < EnableImportFindingsForProductCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceConflictException" : case "com.amazonaws.securityhub#ResourceConflictException" : response = { ... ( await deserializeAws_restJson1ResourceConflictExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1EnableOrganizationAdminAccountCommand = async ( output , context ) : Promise < EnableOrganizationAdminAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1EnableOrganizationAdminAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1EnableOrganizationAdminAccountCommandError = async ( output , context ) : Promise < EnableOrganizationAdminAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1EnableSecurityHubCommand = async ( output , context ) : Promise < EnableSecurityHubCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1EnableSecurityHubCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1EnableSecurityHubCommandError = async ( output , context ) : Promise < EnableSecurityHubCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceConflictException" : case "com.amazonaws.securityhub#ResourceConflictException" : response = { ... ( await deserializeAws_restJson1ResourceConflictExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetAdministratorAccountCommand = async ( output , context ) : Promise < GetAdministratorAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetAdministratorAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Administrator : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Administrator !== undefined && data . Administrator !== null ) { contents . Administrator = deserializeAws_restJson1Invitation ( data . Administrator , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetAdministratorAccountCommandError = async ( output , context ) : Promise < GetAdministratorAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetEnabledStandardsCommand = async ( output , context ) : Promise < GetEnabledStandardsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetEnabledStandardsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , NextToken : undefined , StandardsSubscriptions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } if ( data . StandardsSubscriptions !== undefined && data . StandardsSubscriptions !== null ) { contents . StandardsSubscriptions = deserializeAws_restJson1StandardsSubscriptions ( data . StandardsSubscriptions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetEnabledStandardsCommandError = async ( output , context ) : Promise < GetEnabledStandardsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetFindingAggregatorCommand = async ( output , context ) : Promise < GetFindingAggregatorCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetFindingAggregatorCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , FindingAggregationRegion : undefined , FindingAggregatorArn : undefined , RegionLinkingMode : undefined , Regions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . FindingAggregationRegion !== undefined && data . FindingAggregationRegion !== null ) { contents . FindingAggregationRegion = __expectString ( data . FindingAggregationRegion ) ; } if ( data . FindingAggregatorArn !== undefined && data . FindingAggregatorArn !== null ) { contents . FindingAggregatorArn = __expectString ( data . FindingAggregatorArn ) ; } if ( data . RegionLinkingMode !== undefined && data . RegionLinkingMode !== null ) { contents . RegionLinkingMode = __expectString ( data . RegionLinkingMode ) ; } if ( data . Regions !== undefined && data . Regions !== null ) { contents . Regions = deserializeAws_restJson1StringList ( data . Regions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetFindingAggregatorCommandError = async ( output , context ) : Promise < GetFindingAggregatorCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetFindingsCommand = async ( output , context ) : Promise < GetFindingsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetFindingsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Findings : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Findings !== undefined && data . Findings !== null ) { contents . Findings = deserializeAws_restJson1AwsSecurityFindingList ( data . Findings , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetFindingsCommandError = async ( output , context ) : Promise < GetFindingsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetInsightResultsCommand = async ( output , context ) : Promise < GetInsightResultsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetInsightResultsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , InsightResults : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . InsightResults !== undefined && data . InsightResults !== null ) { contents . InsightResults = deserializeAws_restJson1InsightResults ( data . InsightResults , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetInsightResultsCommandError = async ( output , context ) : Promise < GetInsightResultsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetInsightsCommand = async ( output , context ) : Promise < GetInsightsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetInsightsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Insights : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Insights !== undefined && data . Insights !== null ) { contents . Insights = deserializeAws_restJson1InsightList ( data . Insights , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetInsightsCommandError = async ( output , context ) : Promise < GetInsightsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetInvitationsCountCommand = async ( output , context ) : Promise < GetInvitationsCountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetInvitationsCountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , InvitationsCount : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . InvitationsCount !== undefined && data . InvitationsCount !== null ) { contents . InvitationsCount = __expectInt32 ( data . InvitationsCount ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetInvitationsCountCommandError = async ( output , context ) : Promise < GetInvitationsCountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetMasterAccountCommand = async ( output , context ) : Promise < GetMasterAccountCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetMasterAccountCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Master : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Master !== undefined && data . Master !== null ) { contents . Master = deserializeAws_restJson1Invitation ( data . Master , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetMasterAccountCommandError = async ( output , context ) : Promise < GetMasterAccountCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1GetMembersCommand = async ( output , context ) : Promise < GetMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1GetMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Members : undefined , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Members !== undefined && data . Members !== null ) { contents . Members = deserializeAws_restJson1MemberList ( data . Members , context ) ; } if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1GetMembersCommandError = async ( output , context ) : Promise < GetMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1InviteMembersCommand = async ( output , context ) : Promise < InviteMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1InviteMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , UnprocessedAccounts : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . UnprocessedAccounts !== undefined && data . UnprocessedAccounts !== null ) { contents . UnprocessedAccounts = deserializeAws_restJson1ResultList ( data . UnprocessedAccounts , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1InviteMembersCommandError = async ( output , context ) : Promise < InviteMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListEnabledProductsForImportCommand = async ( output , context ) : Promise < ListEnabledProductsForImportCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListEnabledProductsForImportCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , NextToken : undefined , ProductSubscriptions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } if ( data . ProductSubscriptions !== undefined && data . ProductSubscriptions !== null ) { contents . ProductSubscriptions = deserializeAws_restJson1ProductSubscriptionArnList ( data . ProductSubscriptions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListEnabledProductsForImportCommandError = async ( output , context ) : Promise < ListEnabledProductsForImportCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListFindingAggregatorsCommand = async ( output , context ) : Promise < ListFindingAggregatorsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListFindingAggregatorsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , FindingAggregators : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . FindingAggregators !== undefined && data . FindingAggregators !== null ) { contents . FindingAggregators = deserializeAws_restJson1FindingAggregatorList ( data . FindingAggregators , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListFindingAggregatorsCommandError = async ( output , context ) : Promise < ListFindingAggregatorsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListInvitationsCommand = async ( output , context ) : Promise < ListInvitationsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListInvitationsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Invitations : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Invitations !== undefined && data . Invitations !== null ) { contents . Invitations = deserializeAws_restJson1InvitationList ( data . Invitations , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListInvitationsCommandError = async ( output , context ) : Promise < ListInvitationsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListMembersCommand = async ( output , context ) : Promise < ListMembersCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListMembersCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Members : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Members !== undefined && data . Members !== null ) { contents . Members = deserializeAws_restJson1MemberList ( data . Members , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListMembersCommandError = async ( output , context ) : Promise < ListMembersCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListOrganizationAdminAccountsCommand = async ( output , context ) : Promise < ListOrganizationAdminAccountsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListOrganizationAdminAccountsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , AdminAccounts : undefined , NextToken : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . AdminAccounts !== undefined && data . AdminAccounts !== null ) { contents . AdminAccounts = deserializeAws_restJson1AdminAccounts ( data . AdminAccounts , context ) ; } if ( data . NextToken !== undefined && data . NextToken !== null ) { contents . NextToken = __expectString ( data . NextToken ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListOrganizationAdminAccountsCommandError = async ( output , context ) : Promise < ListOrganizationAdminAccountsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1ListTagsForResourceCommand = async ( output , context ) : Promise < ListTagsForResourceCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1ListTagsForResourceCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , Tags : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . Tags !== undefined && data . Tags !== null ) { contents . Tags = deserializeAws_restJson1TagMap ( data . Tags , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1ListTagsForResourceCommandError = async ( output , context ) : Promise < ListTagsForResourceCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1TagResourceCommand = async ( output , context ) : Promise < TagResourceCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1TagResourceCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1TagResourceCommandError = async ( output , context ) : Promise < TagResourceCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UntagResourceCommand = async ( output , context ) : Promise < UntagResourceCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UntagResourceCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UntagResourceCommandError = async ( output , context ) : Promise < UntagResourceCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateActionTargetCommand = async ( output , context ) : Promise < UpdateActionTargetCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateActionTargetCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateActionTargetCommandError = async ( output , context ) : Promise < UpdateActionTargetCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateFindingAggregatorCommand = async ( output , context ) : Promise < UpdateFindingAggregatorCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateFindingAggregatorCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , FindingAggregationRegion : undefined , FindingAggregatorArn : undefined , RegionLinkingMode : undefined , Regions : undefined , } ; const data = __expectNonNull ( __expectObject ( await parseBody ( output . body , context ) ) , "body" ) ; if ( data . FindingAggregationRegion !== undefined && data . FindingAggregationRegion !== null ) { contents . FindingAggregationRegion = __expectString ( data . FindingAggregationRegion ) ; } if ( data . FindingAggregatorArn !== undefined && data . FindingAggregatorArn !== null ) { contents . FindingAggregatorArn = __expectString ( data . FindingAggregatorArn ) ; } if ( data . RegionLinkingMode !== undefined && data . RegionLinkingMode !== null ) { contents . RegionLinkingMode = __expectString ( data . RegionLinkingMode ) ; } if ( data . Regions !== undefined && data . Regions !== null ) { contents . Regions = deserializeAws_restJson1StringList ( data . Regions , context ) ; } return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateFindingAggregatorCommandError = async ( output , context ) : Promise < UpdateFindingAggregatorCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "AccessDeniedException" : case "com.amazonaws.securityhub#AccessDeniedException" : response = { ... ( await deserializeAws_restJson1AccessDeniedExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateFindingsCommand = async ( output , context ) : Promise < UpdateFindingsCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateFindingsCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateFindingsCommandError = async ( output , context ) : Promise < UpdateFindingsCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateInsightCommand = async ( output , context ) : Promise < UpdateInsightCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateInsightCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateInsightCommandError = async ( output , context ) : Promise < UpdateInsightCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateOrganizationConfigurationCommand = async ( output , context ) : Promise < UpdateOrganizationConfigurationCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateOrganizationConfigurationCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateOrganizationConfigurationCommandError = async ( output , context ) : Promise < UpdateOrganizationConfigurationCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateSecurityHubConfigurationCommand = async ( output , context ) : Promise < UpdateSecurityHubConfigurationCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateSecurityHubConfigurationCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateSecurityHubConfigurationCommandError = async ( output , context ) : Promise < UpdateSecurityHubConfigurationCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "LimitExceededException" : case "com.amazonaws.securityhub#LimitExceededException" : response = { ... ( await deserializeAws_restJson1LimitExceededExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; export const deserializeAws_restJson1UpdateStandardsControlCommand = async ( output , context ) : Promise < UpdateStandardsControlCommandOutput > => { if ( output . statusCode !== 200 && output . statusCode >= 300 ) { return deserializeAws_restJson1UpdateStandardsControlCommandError ( output , context ) ; } const contents = { $metadata : deserializeMetadata ( output ) , } ; await collectBody ( output . body , context ) ; return Promise . resolve ( contents ) ; } ; const deserializeAws_restJson1UpdateStandardsControlCommandError = async ( output , context ) : Promise < UpdateStandardsControlCommandOutput > => { const parsedOutput = { ... output , body : await parseBody ( output . body , context ) , } ; let response ; let errorCode = "UnknownError" ; errorCode = loadRestJsonErrorCode ( output , parsedOutput . body ) ; switch ( errorCode ) { case "InternalException" : case "com.amazonaws.securityhub#InternalException" : response = { ... ( await deserializeAws_restJson1InternalExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidAccessException" : case "com.amazonaws.securityhub#InvalidAccessException" : response = { ... ( await deserializeAws_restJson1InvalidAccessExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "InvalidInputException" : case "com.amazonaws.securityhub#InvalidInputException" : response = { ... ( await deserializeAws_restJson1InvalidInputExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; case "ResourceNotFoundException" : case "com.amazonaws.securityhub#ResourceNotFoundException" : response = { ... ( await deserializeAws_restJson1ResourceNotFoundExceptionResponse ( parsedOutput , context ) ) , name : errorCode , $metadata : deserializeMetadata ( output ) , } ; break ; default : const parsedBody = parsedOutput . body ; errorCode = parsedBody . code || parsedBody . Code || errorCode ; response = { ... parsedBody , name : `${ errorCode }` , message : parsedBody . message || parsedBody . Message || errorCode , $fault : "client" , $metadata : deserializeMetadata ( output ) , } as any ; } const message = response . message || response . Message || errorCode ; response . message = message ; delete response . Message ; return Promise . reject ( Object . assign ( new Error ( message ) , response ) ) ; } ; const deserializeAws_restJson1AccessDeniedExceptionResponse = async ( parsedOutput , context ) : Promise < AccessDeniedException > => { const contents = { name : "AccessDeniedException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1InternalExceptionResponse = async ( parsedOutput , context ) : Promise < InternalException > => { const contents = { name : "InternalException" , $fault : "server" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1InvalidAccessExceptionResponse = async ( parsedOutput , context ) : Promise < InvalidAccessException > => { const contents = { name : "InvalidAccessException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1InvalidInputExceptionResponse = async ( parsedOutput , context ) : Promise < InvalidInputException > => { const contents = { name : "InvalidInputException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1LimitExceededExceptionResponse = async ( parsedOutput , context ) : Promise < LimitExceededException > => { const contents = { name : "LimitExceededException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1ResourceConflictExceptionResponse = async ( parsedOutput , context ) : Promise < ResourceConflictException > => { const contents = { name : "ResourceConflictException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( parsedOutput , context ) : Promise < ResourceNotFoundException > => { const contents = { name : "ResourceNotFoundException" , $fault : "client" , $metadata : deserializeMetadata ( parsedOutput ) , Code : undefined , Message : undefined , } ; const data = parsedOutput . body ; if ( data . Code !== undefined && data . Code !== null ) { contents . Code = __expectString ( data . Code ) ; } if ( data . Message !== undefined && data . Message !== null ) { contents . Message = __expectString ( data . Message ) ; } return contents ; } ; const serializeAws_restJson1AccountDetails = ( input , context ) : any => { return { ... ( input . AccountId !== undefined && input . AccountId !== null && { AccountId : input . AccountId } ) , ... ( input . Email !== undefined && input . Email !== null && { Email : input . Email } ) , } ; } ; const serializeAws_restJson1AccountDetailsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AccountDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AccountIdList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1Action = ( input , context ) : any => { return { ... ( input . ActionType !== undefined && input . ActionType !== null && { ActionType : input . ActionType } ) , ... ( input . AwsApiCallAction !== undefined && input . AwsApiCallAction !== null && { AwsApiCallAction : serializeAws_restJson1AwsApiCallAction ( input . AwsApiCallAction , context ) , } ) , ... ( input . DnsRequestAction !== undefined && input . DnsRequestAction !== null && { DnsRequestAction : serializeAws_restJson1DnsRequestAction ( input . DnsRequestAction , context ) , } ) , ... ( input . NetworkConnectionAction !== undefined && input . NetworkConnectionAction !== null && { NetworkConnectionAction : serializeAws_restJson1NetworkConnectionAction ( input . NetworkConnectionAction , context ) , } ) , ... ( input . PortProbeAction !== undefined && input . PortProbeAction !== null && { PortProbeAction : serializeAws_restJson1PortProbeAction ( input . PortProbeAction , context ) , } ) , } ; } ; const serializeAws_restJson1ActionLocalIpDetails = ( input , context ) : any => { return { ... ( input . IpAddressV4 !== undefined && input . IpAddressV4 !== null && { IpAddressV4 : input . IpAddressV4 } ) , } ; } ; const serializeAws_restJson1ActionLocalPortDetails = ( input , context ) : any => { return { ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . PortName !== undefined && input . PortName !== null && { PortName : input . PortName } ) , } ; } ; const serializeAws_restJson1ActionRemoteIpDetails = ( input , context ) : any => { return { ... ( input . City !== undefined && input . City !== null && { City : serializeAws_restJson1City ( input . City , context ) } ) , ... ( input . Country !== undefined && input . Country !== null && { Country : serializeAws_restJson1Country ( input . Country , context ) } ) , ... ( input . GeoLocation !== undefined && input . GeoLocation !== null && { GeoLocation : serializeAws_restJson1GeoLocation ( input . GeoLocation , context ) } ) , ... ( input . IpAddressV4 !== undefined && input . IpAddressV4 !== null && { IpAddressV4 : input . IpAddressV4 } ) , ... ( input . Organization !== undefined && input . Organization !== null && { Organization : serializeAws_restJson1IpOrganizationDetails ( input . Organization , context ) , } ) , } ; } ; const serializeAws_restJson1ActionRemotePortDetails = ( input , context ) : any => { return { ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . PortName !== undefined && input . PortName !== null && { PortName : input . PortName } ) , } ; } ; const serializeAws_restJson1Adjustment = ( input , context ) : any => { return { ... ( input . Metric !== undefined && input . Metric !== null && { Metric : input . Metric } ) , ... ( input . Reason !== undefined && input . Reason !== null && { Reason : input . Reason } ) , } ; } ; const serializeAws_restJson1AdjustmentList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Adjustment ( entry , context ) ; } ) ; } ; const serializeAws_restJson1ArnList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1AvailabilityZone = ( input , context ) : any => { return { ... ( input . SubnetId !== undefined && input . SubnetId !== null && { SubnetId : input . SubnetId } ) , ... ( input . ZoneName !== undefined && input . ZoneName !== null && { ZoneName : input . ZoneName } ) , } ; } ; const serializeAws_restJson1AvailabilityZones = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AvailabilityZone ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsApiCallAction = ( input , context ) : any => { return { ... ( input . AffectedResources !== undefined && input . AffectedResources !== null && { AffectedResources : serializeAws_restJson1FieldMap ( input . AffectedResources , context ) , } ) , ... ( input . Api !== undefined && input . Api !== null && { Api : input . Api } ) , ... ( input . CallerType !== undefined && input . CallerType !== null && { CallerType : input . CallerType } ) , ... ( input . DomainDetails !== undefined && input . DomainDetails !== null && { DomainDetails : serializeAws_restJson1AwsApiCallActionDomainDetails ( input . DomainDetails , context ) , } ) , ... ( input . FirstSeen !== undefined && input . FirstSeen !== null && { FirstSeen : input . FirstSeen } ) , ... ( input . LastSeen !== undefined && input . LastSeen !== null && { LastSeen : input . LastSeen } ) , ... ( input . RemoteIpDetails !== undefined && input . RemoteIpDetails !== null && { RemoteIpDetails : serializeAws_restJson1ActionRemoteIpDetails ( input . RemoteIpDetails , context ) , } ) , ... ( input . ServiceName !== undefined && input . ServiceName !== null && { ServiceName : input . ServiceName } ) , } ; } ; const serializeAws_restJson1AwsApiCallActionDomainDetails = ( input , context ) : any => { return { ... ( input . Domain !== undefined && input . Domain !== null && { Domain : input . Domain } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayAccessLogSettings = ( input , context ) : any => { return { ... ( input . DestinationArn !== undefined && input . DestinationArn !== null && { DestinationArn : input . DestinationArn } ) , ... ( input . Format !== undefined && input . Format !== null && { Format : input . Format } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayCanarySettings = ( input , context ) : any => { return { ... ( input . DeploymentId !== undefined && input . DeploymentId !== null && { DeploymentId : input . DeploymentId } ) , ... ( input . PercentTraffic !== undefined && input . PercentTraffic !== null && { PercentTraffic : __serializeFloat ( input . PercentTraffic ) } ) , ... ( input . StageVariableOverrides !== undefined && input . StageVariableOverrides !== null && { StageVariableOverrides : serializeAws_restJson1FieldMap ( input . StageVariableOverrides , context ) , } ) , ... ( input . UseStageCache !== undefined && input . UseStageCache !== null && { UseStageCache : input . UseStageCache } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayEndpointConfiguration = ( input , context ) : any => { return { ... ( input . Types !== undefined && input . Types !== null && { Types : serializeAws_restJson1NonEmptyStringList ( input . Types , context ) } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayMethodSettings = ( input , context ) : any => { return { ... ( input . CacheDataEncrypted !== undefined && input . CacheDataEncrypted !== null && { CacheDataEncrypted : input . CacheDataEncrypted } ) , ... ( input . CacheTtlInSeconds !== undefined && input . CacheTtlInSeconds !== null && { CacheTtlInSeconds : input . CacheTtlInSeconds } ) , ... ( input . CachingEnabled !== undefined && input . CachingEnabled !== null && { CachingEnabled : input . CachingEnabled } ) , ... ( input . DataTraceEnabled !== undefined && input . DataTraceEnabled !== null && { DataTraceEnabled : input . DataTraceEnabled } ) , ... ( input . HttpMethod !== undefined && input . HttpMethod !== null && { HttpMethod : input . HttpMethod } ) , ... ( input . LoggingLevel !== undefined && input . LoggingLevel !== null && { LoggingLevel : input . LoggingLevel } ) , ... ( input . MetricsEnabled !== undefined && input . MetricsEnabled !== null && { MetricsEnabled : input . MetricsEnabled } ) , ... ( input . RequireAuthorizationForCacheControl !== undefined && input . RequireAuthorizationForCacheControl !== null && { RequireAuthorizationForCacheControl : input . RequireAuthorizationForCacheControl , } ) , ... ( input . ResourcePath !== undefined && input . ResourcePath !== null && { ResourcePath : input . ResourcePath } ) , ... ( input . ThrottlingBurstLimit !== undefined && input . ThrottlingBurstLimit !== null && { ThrottlingBurstLimit : input . ThrottlingBurstLimit } ) , ... ( input . ThrottlingRateLimit !== undefined && input . ThrottlingRateLimit !== null && { ThrottlingRateLimit : __serializeFloat ( input . ThrottlingRateLimit ) } ) , ... ( input . UnauthorizedCacheControlHeaderStrategy !== undefined && input . UnauthorizedCacheControlHeaderStrategy !== null && { UnauthorizedCacheControlHeaderStrategy : input . UnauthorizedCacheControlHeaderStrategy , } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayMethodSettingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsApiGatewayMethodSettings ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsApiGatewayRestApiDetails = ( input , context ) : any => { return { ... ( input . ApiKeySource !== undefined && input . ApiKeySource !== null && { ApiKeySource : input . ApiKeySource } ) , ... ( input . BinaryMediaTypes !== undefined && input . BinaryMediaTypes !== null && { BinaryMediaTypes : serializeAws_restJson1NonEmptyStringList ( input . BinaryMediaTypes , context ) , } ) , ... ( input . CreatedDate !== undefined && input . CreatedDate !== null && { CreatedDate : input . CreatedDate } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . EndpointConfiguration !== undefined && input . EndpointConfiguration !== null && { EndpointConfiguration : serializeAws_restJson1AwsApiGatewayEndpointConfiguration ( input . EndpointConfiguration , context ) , } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . MinimumCompressionSize !== undefined && input . MinimumCompressionSize !== null && { MinimumCompressionSize : input . MinimumCompressionSize } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayStageDetails = ( input , context ) : any => { return { ... ( input . AccessLogSettings !== undefined && input . AccessLogSettings !== null && { AccessLogSettings : serializeAws_restJson1AwsApiGatewayAccessLogSettings ( input . AccessLogSettings , context ) , } ) , ... ( input . CacheClusterEnabled !== undefined && input . CacheClusterEnabled !== null && { CacheClusterEnabled : input . CacheClusterEnabled } ) , ... ( input . CacheClusterSize !== undefined && input . CacheClusterSize !== null && { CacheClusterSize : input . CacheClusterSize } ) , ... ( input . CacheClusterStatus !== undefined && input . CacheClusterStatus !== null && { CacheClusterStatus : input . CacheClusterStatus } ) , ... ( input . CanarySettings !== undefined && input . CanarySettings !== null && { CanarySettings : serializeAws_restJson1AwsApiGatewayCanarySettings ( input . CanarySettings , context ) , } ) , ... ( input . ClientCertificateId !== undefined && input . ClientCertificateId !== null && { ClientCertificateId : input . ClientCertificateId } ) , ... ( input . CreatedDate !== undefined && input . CreatedDate !== null && { CreatedDate : input . CreatedDate } ) , ... ( input . DeploymentId !== undefined && input . DeploymentId !== null && { DeploymentId : input . DeploymentId } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . DocumentationVersion !== undefined && input . DocumentationVersion !== null && { DocumentationVersion : input . DocumentationVersion } ) , ... ( input . LastUpdatedDate !== undefined && input . LastUpdatedDate !== null && { LastUpdatedDate : input . LastUpdatedDate } ) , ... ( input . MethodSettings !== undefined && input . MethodSettings !== null && { MethodSettings : serializeAws_restJson1AwsApiGatewayMethodSettingsList ( input . MethodSettings , context ) , } ) , ... ( input . StageName !== undefined && input . StageName !== null && { StageName : input . StageName } ) , ... ( input . TracingEnabled !== undefined && input . TracingEnabled !== null && { TracingEnabled : input . TracingEnabled } ) , ... ( input . Variables !== undefined && input . Variables !== null && { Variables : serializeAws_restJson1FieldMap ( input . Variables , context ) } ) , ... ( input . WebAclArn !== undefined && input . WebAclArn !== null && { WebAclArn : input . WebAclArn } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayV2ApiDetails = ( input , context ) : any => { return { ... ( input . ApiEndpoint !== undefined && input . ApiEndpoint !== null && { ApiEndpoint : input . ApiEndpoint } ) , ... ( input . ApiId !== undefined && input . ApiId !== null && { ApiId : input . ApiId } ) , ... ( input . ApiKeySelectionExpression !== undefined && input . ApiKeySelectionExpression !== null && { ApiKeySelectionExpression : input . ApiKeySelectionExpression } ) , ... ( input . CorsConfiguration !== undefined && input . CorsConfiguration !== null && { CorsConfiguration : serializeAws_restJson1AwsCorsConfiguration ( input . CorsConfiguration , context ) , } ) , ... ( input . CreatedDate !== undefined && input . CreatedDate !== null && { CreatedDate : input . CreatedDate } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ProtocolType !== undefined && input . ProtocolType !== null && { ProtocolType : input . ProtocolType } ) , ... ( input . RouteSelectionExpression !== undefined && input . RouteSelectionExpression !== null && { RouteSelectionExpression : input . RouteSelectionExpression } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayV2RouteSettings = ( input , context ) : any => { return { ... ( input . DataTraceEnabled !== undefined && input . DataTraceEnabled !== null && { DataTraceEnabled : input . DataTraceEnabled } ) , ... ( input . DetailedMetricsEnabled !== undefined && input . DetailedMetricsEnabled !== null && { DetailedMetricsEnabled : input . DetailedMetricsEnabled } ) , ... ( input . LoggingLevel !== undefined && input . LoggingLevel !== null && { LoggingLevel : input . LoggingLevel } ) , ... ( input . ThrottlingBurstLimit !== undefined && input . ThrottlingBurstLimit !== null && { ThrottlingBurstLimit : input . ThrottlingBurstLimit } ) , ... ( input . ThrottlingRateLimit !== undefined && input . ThrottlingRateLimit !== null && { ThrottlingRateLimit : __serializeFloat ( input . ThrottlingRateLimit ) } ) , } ; } ; const serializeAws_restJson1AwsApiGatewayV2StageDetails = ( input , context ) : any => { return { ... ( input . AccessLogSettings !== undefined && input . AccessLogSettings !== null && { AccessLogSettings : serializeAws_restJson1AwsApiGatewayAccessLogSettings ( input . AccessLogSettings , context ) , } ) , ... ( input . ApiGatewayManaged !== undefined && input . ApiGatewayManaged !== null && { ApiGatewayManaged : input . ApiGatewayManaged } ) , ... ( input . AutoDeploy !== undefined && input . AutoDeploy !== null && { AutoDeploy : input . AutoDeploy } ) , ... ( input . ClientCertificateId !== undefined && input . ClientCertificateId !== null && { ClientCertificateId : input . ClientCertificateId } ) , ... ( input . CreatedDate !== undefined && input . CreatedDate !== null && { CreatedDate : input . CreatedDate } ) , ... ( input . DefaultRouteSettings !== undefined && input . DefaultRouteSettings !== null && { DefaultRouteSettings : serializeAws_restJson1AwsApiGatewayV2RouteSettings ( input . DefaultRouteSettings , context ) , } ) , ... ( input . DeploymentId !== undefined && input . DeploymentId !== null && { DeploymentId : input . DeploymentId } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . LastDeploymentStatusMessage !== undefined && input . LastDeploymentStatusMessage !== null && { LastDeploymentStatusMessage : input . LastDeploymentStatusMessage } ) , ... ( input . LastUpdatedDate !== undefined && input . LastUpdatedDate !== null && { LastUpdatedDate : input . LastUpdatedDate } ) , ... ( input . RouteSettings !== undefined && input . RouteSettings !== null && { RouteSettings : serializeAws_restJson1AwsApiGatewayV2RouteSettings ( input . RouteSettings , context ) , } ) , ... ( input . StageName !== undefined && input . StageName !== null && { StageName : input . StageName } ) , ... ( input . StageVariables !== undefined && input . StageVariables !== null && { StageVariables : serializeAws_restJson1FieldMap ( input . StageVariables , context ) , } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails = ( input , context ) : any => { return { ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( input , context ) : any => { return { ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList ( input . AvailabilityZones , context ) , } ) , ... ( input . CreatedTime !== undefined && input . CreatedTime !== null && { CreatedTime : input . CreatedTime } ) , ... ( input . HealthCheckGracePeriod !== undefined && input . HealthCheckGracePeriod !== null && { HealthCheckGracePeriod : input . HealthCheckGracePeriod } ) , ... ( input . HealthCheckType !== undefined && input . HealthCheckType !== null && { HealthCheckType : input . HealthCheckType } ) , ... ( input . LaunchConfigurationName !== undefined && input . LaunchConfigurationName !== null && { LaunchConfigurationName : input . LaunchConfigurationName } ) , ... ( input . LoadBalancerNames !== undefined && input . LoadBalancerNames !== null && { LoadBalancerNames : serializeAws_restJson1StringList ( input . LoadBalancerNames , context ) , } ) , ... ( input . MixedInstancesPolicy !== undefined && input . MixedInstancesPolicy !== null && { MixedInstancesPolicy : serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails ( input . MixedInstancesPolicy , context ) , } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails = ( input , context ) : any => { return { ... ( input . InstancesDistribution !== undefined && input . InstancesDistribution !== null && { InstancesDistribution : serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails ( input . InstancesDistribution , context ) , } ) , ... ( input . LaunchTemplate !== undefined && input . LaunchTemplate !== null && { LaunchTemplate : serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails ( input . LaunchTemplate , context ) , } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails = ( input , context ) : any => { return { ... ( input . OnDemandAllocationStrategy !== undefined && input . OnDemandAllocationStrategy !== null && { OnDemandAllocationStrategy : input . OnDemandAllocationStrategy } ) , ... ( input . OnDemandBaseCapacity !== undefined && input . OnDemandBaseCapacity !== null && { OnDemandBaseCapacity : input . OnDemandBaseCapacity } ) , ... ( input . OnDemandPercentageAboveBaseCapacity !== undefined && input . OnDemandPercentageAboveBaseCapacity !== null && { OnDemandPercentageAboveBaseCapacity : input . OnDemandPercentageAboveBaseCapacity , } ) , ... ( input . SpotAllocationStrategy !== undefined && input . SpotAllocationStrategy !== null && { SpotAllocationStrategy : input . SpotAllocationStrategy } ) , ... ( input . SpotInstancePools !== undefined && input . SpotInstancePools !== null && { SpotInstancePools : input . SpotInstancePools } ) , ... ( input . SpotMaxPrice !== undefined && input . SpotMaxPrice !== null && { SpotMaxPrice : input . SpotMaxPrice } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails = ( input , context ) : any => { return { ... ( input . LaunchTemplateSpecification !== undefined && input . LaunchTemplateSpecification !== null && { LaunchTemplateSpecification : serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification ( input . LaunchTemplateSpecification , context ) , } ) , ... ( input . Overrides !== undefined && input . Overrides !== null && { Overrides : serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList ( input . Overrides , context ) , } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification = ( input , context ) : any => { return { ... ( input . LaunchTemplateId !== undefined && input . LaunchTemplateId !== null && { LaunchTemplateId : input . LaunchTemplateId } ) , ... ( input . LaunchTemplateName !== undefined && input . LaunchTemplateName !== null && { LaunchTemplateName : input . LaunchTemplateName } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails = ( input , context ) : any => { return { ... ( input . InstanceType !== undefined && input . InstanceType !== null && { InstanceType : input . InstanceType } ) , ... ( input . WeightedCapacity !== undefined && input . WeightedCapacity !== null && { WeightedCapacity : input . WeightedCapacity } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails = ( input , context ) : any => { return { ... ( input . DeviceName !== undefined && input . DeviceName !== null && { DeviceName : input . DeviceName } ) , ... ( input . Ebs !== undefined && input . Ebs !== null && { Ebs : serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails ( input . Ebs , context ) , } ) , ... ( input . NoDevice !== undefined && input . NoDevice !== null && { NoDevice : input . NoDevice } ) , ... ( input . VirtualName !== undefined && input . VirtualName !== null && { VirtualName : input . VirtualName } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails = ( input , context ) : any => { return { ... ( input . DeleteOnTermination !== undefined && input . DeleteOnTermination !== null && { DeleteOnTermination : input . DeleteOnTermination } ) , ... ( input . Encrypted !== undefined && input . Encrypted !== null && { Encrypted : input . Encrypted } ) , ... ( input . Iops !== undefined && input . Iops !== null && { Iops : input . Iops } ) , ... ( input . SnapshotId !== undefined && input . SnapshotId !== null && { SnapshotId : input . SnapshotId } ) , ... ( input . VolumeSize !== undefined && input . VolumeSize !== null && { VolumeSize : input . VolumeSize } ) , ... ( input . VolumeType !== undefined && input . VolumeType !== null && { VolumeType : input . VolumeType } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails = ( input , context ) : any => { return { ... ( input . AssociatePublicIpAddress !== undefined && input . AssociatePublicIpAddress !== null && { AssociatePublicIpAddress : input . AssociatePublicIpAddress } ) , ... ( input . BlockDeviceMappings !== undefined && input . BlockDeviceMappings !== null && { BlockDeviceMappings : serializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList ( input . BlockDeviceMappings , context ) , } ) , ... ( input . ClassicLinkVpcId !== undefined && input . ClassicLinkVpcId !== null && { ClassicLinkVpcId : input . ClassicLinkVpcId } ) , ... ( input . ClassicLinkVpcSecurityGroups !== undefined && input . ClassicLinkVpcSecurityGroups !== null && { ClassicLinkVpcSecurityGroups : serializeAws_restJson1NonEmptyStringList ( input . ClassicLinkVpcSecurityGroups , context ) , } ) , ... ( input . CreatedTime !== undefined && input . CreatedTime !== null && { CreatedTime : input . CreatedTime } ) , ... ( input . EbsOptimized !== undefined && input . EbsOptimized !== null && { EbsOptimized : input . EbsOptimized } ) , ... ( input . IamInstanceProfile !== undefined && input . IamInstanceProfile !== null && { IamInstanceProfile : input . IamInstanceProfile } ) , ... ( input . ImageId !== undefined && input . ImageId !== null && { ImageId : input . ImageId } ) , ... ( input . InstanceMonitoring !== undefined && input . InstanceMonitoring !== null && { InstanceMonitoring : serializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails ( input . InstanceMonitoring , context ) , } ) , ... ( input . InstanceType !== undefined && input . InstanceType !== null && { InstanceType : input . InstanceType } ) , ... ( input . KernelId !== undefined && input . KernelId !== null && { KernelId : input . KernelId } ) , ... ( input . KeyName !== undefined && input . KeyName !== null && { KeyName : input . KeyName } ) , ... ( input . LaunchConfigurationName !== undefined && input . LaunchConfigurationName !== null && { LaunchConfigurationName : input . LaunchConfigurationName } ) , ... ( input . MetadataOptions !== undefined && input . MetadataOptions !== null && { MetadataOptions : serializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions ( input . MetadataOptions , context ) , } ) , ... ( input . PlacementTenancy !== undefined && input . PlacementTenancy !== null && { PlacementTenancy : input . PlacementTenancy } ) , ... ( input . RamdiskId !== undefined && input . RamdiskId !== null && { RamdiskId : input . RamdiskId } ) , ... ( input . SecurityGroups !== undefined && input . SecurityGroups !== null && { SecurityGroups : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroups , context ) , } ) , ... ( input . SpotPrice !== undefined && input . SpotPrice !== null && { SpotPrice : input . SpotPrice } ) , ... ( input . UserData !== undefined && input . UserData !== null && { UserData : input . UserData } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions = ( input , context ) : any => { return { ... ( input . HttpEndpoint !== undefined && input . HttpEndpoint !== null && { HttpEndpoint : input . HttpEndpoint } ) , ... ( input . HttpPutResponseHopLimit !== undefined && input . HttpPutResponseHopLimit !== null && { HttpPutResponseHopLimit : input . HttpPutResponseHopLimit } ) , ... ( input . HttpTokens !== undefined && input . HttpTokens !== null && { HttpTokens : input . HttpTokens } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateDetails = ( input , context ) : any => { return { ... ( input . CertificateAuthorityArn !== undefined && input . CertificateAuthorityArn !== null && { CertificateAuthorityArn : input . CertificateAuthorityArn } ) , ... ( input . CreatedAt !== undefined && input . CreatedAt !== null && { CreatedAt : input . CreatedAt } ) , ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . DomainValidationOptions !== undefined && input . DomainValidationOptions !== null && { DomainValidationOptions : serializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions ( input . DomainValidationOptions , context ) , } ) , ... ( input . ExtendedKeyUsages !== undefined && input . ExtendedKeyUsages !== null && { ExtendedKeyUsages : serializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsages ( input . ExtendedKeyUsages , context ) , } ) , ... ( input . FailureReason !== undefined && input . FailureReason !== null && { FailureReason : input . FailureReason } ) , ... ( input . ImportedAt !== undefined && input . ImportedAt !== null && { ImportedAt : input . ImportedAt } ) , ... ( input . InUseBy !== undefined && input . InUseBy !== null && { InUseBy : serializeAws_restJson1StringList ( input . InUseBy , context ) } ) , ... ( input . IssuedAt !== undefined && input . IssuedAt !== null && { IssuedAt : input . IssuedAt } ) , ... ( input . Issuer !== undefined && input . Issuer !== null && { Issuer : input . Issuer } ) , ... ( input . KeyAlgorithm !== undefined && input . KeyAlgorithm !== null && { KeyAlgorithm : input . KeyAlgorithm } ) , ... ( input . KeyUsages !== undefined && input . KeyUsages !== null && { KeyUsages : serializeAws_restJson1AwsCertificateManagerCertificateKeyUsages ( input . KeyUsages , context ) , } ) , ... ( input . NotAfter !== undefined && input . NotAfter !== null && { NotAfter : input . NotAfter } ) , ... ( input . NotBefore !== undefined && input . NotBefore !== null && { NotBefore : input . NotBefore } ) , ... ( input . Options !== undefined && input . Options !== null && { Options : serializeAws_restJson1AwsCertificateManagerCertificateOptions ( input . Options , context ) , } ) , ... ( input . RenewalEligibility !== undefined && input . RenewalEligibility !== null && { RenewalEligibility : input . RenewalEligibility } ) , ... ( input . RenewalSummary !== undefined && input . RenewalSummary !== null && { RenewalSummary : serializeAws_restJson1AwsCertificateManagerCertificateRenewalSummary ( input . RenewalSummary , context ) , } ) , ... ( input . Serial !== undefined && input . Serial !== null && { Serial : input . Serial } ) , ... ( input . SignatureAlgorithm !== undefined && input . SignatureAlgorithm !== null && { SignatureAlgorithm : input . SignatureAlgorithm } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . Subject !== undefined && input . Subject !== null && { Subject : input . Subject } ) , ... ( input . SubjectAlternativeNames !== undefined && input . SubjectAlternativeNames !== null && { SubjectAlternativeNames : serializeAws_restJson1StringList ( input . SubjectAlternativeNames , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOption = ( input , context ) : any => { return { ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . ResourceRecord !== undefined && input . ResourceRecord !== null && { ResourceRecord : serializeAws_restJson1AwsCertificateManagerCertificateResourceRecord ( input . ResourceRecord , context ) , } ) , ... ( input . ValidationDomain !== undefined && input . ValidationDomain !== null && { ValidationDomain : input . ValidationDomain } ) , ... ( input . ValidationEmails !== undefined && input . ValidationEmails !== null && { ValidationEmails : serializeAws_restJson1StringList ( input . ValidationEmails , context ) , } ) , ... ( input . ValidationMethod !== undefined && input . ValidationMethod !== null && { ValidationMethod : input . ValidationMethod } ) , ... ( input . ValidationStatus !== undefined && input . ValidationStatus !== null && { ValidationStatus : input . ValidationStatus } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOption ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsage = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . OId !== undefined && input . OId !== null && { OId : input . OId } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsages = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsage ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateKeyUsage = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateKeyUsages = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCertificateManagerCertificateKeyUsage ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateOptions = ( input , context ) : any => { return { ... ( input . CertificateTransparencyLoggingPreference !== undefined && input . CertificateTransparencyLoggingPreference !== null && { CertificateTransparencyLoggingPreference : input . CertificateTransparencyLoggingPreference , } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateRenewalSummary = ( input , context ) : any => { return { ... ( input . DomainValidationOptions !== undefined && input . DomainValidationOptions !== null && { DomainValidationOptions : serializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions ( input . DomainValidationOptions , context ) , } ) , ... ( input . RenewalStatus !== undefined && input . RenewalStatus !== null && { RenewalStatus : input . RenewalStatus } ) , ... ( input . RenewalStatusReason !== undefined && input . RenewalStatusReason !== null && { RenewalStatusReason : input . RenewalStatusReason } ) , ... ( input . UpdatedAt !== undefined && input . UpdatedAt !== null && { UpdatedAt : input . UpdatedAt } ) , } ; } ; const serializeAws_restJson1AwsCertificateManagerCertificateResourceRecord = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionCacheBehavior = ( input , context ) : any => { return { ... ( input . ViewerProtocolPolicy !== undefined && input . ViewerProtocolPolicy !== null && { ViewerProtocolPolicy : input . ViewerProtocolPolicy } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionCacheBehaviors = ( input , context ) : any => { return { ... ( input . Items !== undefined && input . Items !== null && { Items : serializeAws_restJson1AwsCloudFrontDistributionCacheBehaviorsItemList ( input . Items , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionCacheBehaviorsItemList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCloudFrontDistributionCacheBehavior ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCloudFrontDistributionDefaultCacheBehavior = ( input , context ) : any => { return { ... ( input . ViewerProtocolPolicy !== undefined && input . ViewerProtocolPolicy !== null && { ViewerProtocolPolicy : input . ViewerProtocolPolicy } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionDetails = ( input , context ) : any => { return { ... ( input . CacheBehaviors !== undefined && input . CacheBehaviors !== null && { CacheBehaviors : serializeAws_restJson1AwsCloudFrontDistributionCacheBehaviors ( input . CacheBehaviors , context ) , } ) , ... ( input . DefaultCacheBehavior !== undefined && input . DefaultCacheBehavior !== null && { DefaultCacheBehavior : serializeAws_restJson1AwsCloudFrontDistributionDefaultCacheBehavior ( input . DefaultCacheBehavior , context ) , } ) , ... ( input . DefaultRootObject !== undefined && input . DefaultRootObject !== null && { DefaultRootObject : input . DefaultRootObject } ) , ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . ETag !== undefined && input . ETag !== null && { ETag : input . ETag } ) , ... ( input . LastModifiedTime !== undefined && input . LastModifiedTime !== null && { LastModifiedTime : input . LastModifiedTime } ) , ... ( input . Logging !== undefined && input . Logging !== null && { Logging : serializeAws_restJson1AwsCloudFrontDistributionLogging ( input . Logging , context ) , } ) , ... ( input . OriginGroups !== undefined && input . OriginGroups !== null && { OriginGroups : serializeAws_restJson1AwsCloudFrontDistributionOriginGroups ( input . OriginGroups , context ) , } ) , ... ( input . Origins !== undefined && input . Origins !== null && { Origins : serializeAws_restJson1AwsCloudFrontDistributionOrigins ( input . Origins , context ) , } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . ViewerCertificate !== undefined && input . ViewerCertificate !== null && { ViewerCertificate : serializeAws_restJson1AwsCloudFrontDistributionViewerCertificate ( input . ViewerCertificate , context ) , } ) , ... ( input . WebAclId !== undefined && input . WebAclId !== null && { WebAclId : input . WebAclId } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionLogging = ( input , context ) : any => { return { ... ( input . Bucket !== undefined && input . Bucket !== null && { Bucket : input . Bucket } ) , ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . IncludeCookies !== undefined && input . IncludeCookies !== null && { IncludeCookies : input . IncludeCookies } ) , ... ( input . Prefix !== undefined && input . Prefix !== null && { Prefix : input . Prefix } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroup = ( input , context ) : any => { return { ... ( input . FailoverCriteria !== undefined && input . FailoverCriteria !== null && { FailoverCriteria : serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailover ( input . FailoverCriteria , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailover = ( input , context ) : any => { return { ... ( input . StatusCodes !== undefined && input . StatusCodes !== null && { StatusCodes : serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodes ( input . StatusCodes , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodes = ( input , context ) : any => { return { ... ( input . Items !== undefined && input . Items !== null && { Items : serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList ( input . Items , context ) , } ) , ... ( input . Quantity !== undefined && input . Quantity !== null && { Quantity : input . Quantity } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroups = ( input , context ) : any => { return { ... ( input . Items !== undefined && input . Items !== null && { Items : serializeAws_restJson1AwsCloudFrontDistributionOriginGroupsItemList ( input . Items , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginGroupsItemList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCloudFrontDistributionOriginGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginItem = ( input , context ) : any => { return { ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . OriginPath !== undefined && input . OriginPath !== null && { OriginPath : input . OriginPath } ) , ... ( input . S3OriginConfig !== undefined && input . S3OriginConfig !== null && { S3OriginConfig : serializeAws_restJson1AwsCloudFrontDistributionOriginS3OriginConfig ( input . S3OriginConfig , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginItemList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCloudFrontDistributionOriginItem ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOrigins = ( input , context ) : any => { return { ... ( input . Items !== undefined && input . Items !== null && { Items : serializeAws_restJson1AwsCloudFrontDistributionOriginItemList ( input . Items , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionOriginS3OriginConfig = ( input , context ) : any => { return { ... ( input . OriginAccessIdentity !== undefined && input . OriginAccessIdentity !== null && { OriginAccessIdentity : input . OriginAccessIdentity } ) , } ; } ; const serializeAws_restJson1AwsCloudFrontDistributionViewerCertificate = ( input , context ) : any => { return { ... ( input . AcmCertificateArn !== undefined && input . AcmCertificateArn !== null && { AcmCertificateArn : input . AcmCertificateArn } ) , ... ( input . Certificate !== undefined && input . Certificate !== null && { Certificate : input . Certificate } ) , ... ( input . CertificateSource !== undefined && input . CertificateSource !== null && { CertificateSource : input . CertificateSource } ) , ... ( input . CloudFrontDefaultCertificate !== undefined && input . CloudFrontDefaultCertificate !== null && { CloudFrontDefaultCertificate : input . CloudFrontDefaultCertificate , } ) , ... ( input . IamCertificateId !== undefined && input . IamCertificateId !== null && { IamCertificateId : input . IamCertificateId } ) , ... ( input . MinimumProtocolVersion !== undefined && input . MinimumProtocolVersion !== null && { MinimumProtocolVersion : input . MinimumProtocolVersion } ) , ... ( input . SslSupportMethod !== undefined && input . SslSupportMethod !== null && { SslSupportMethod : input . SslSupportMethod } ) , } ; } ; const serializeAws_restJson1AwsCloudTrailTrailDetails = ( input , context ) : any => { return { ... ( input . CloudWatchLogsLogGroupArn !== undefined && input . CloudWatchLogsLogGroupArn !== null && { CloudWatchLogsLogGroupArn : input . CloudWatchLogsLogGroupArn } ) , ... ( input . CloudWatchLogsRoleArn !== undefined && input . CloudWatchLogsRoleArn !== null && { CloudWatchLogsRoleArn : input . CloudWatchLogsRoleArn } ) , ... ( input . HasCustomEventSelectors !== undefined && input . HasCustomEventSelectors !== null && { HasCustomEventSelectors : input . HasCustomEventSelectors } ) , ... ( input . HomeRegion !== undefined && input . HomeRegion !== null && { HomeRegion : input . HomeRegion } ) , ... ( input . IncludeGlobalServiceEvents !== undefined && input . IncludeGlobalServiceEvents !== null && { IncludeGlobalServiceEvents : input . IncludeGlobalServiceEvents } ) , ... ( input . IsMultiRegionTrail !== undefined && input . IsMultiRegionTrail !== null && { IsMultiRegionTrail : input . IsMultiRegionTrail } ) , ... ( input . IsOrganizationTrail !== undefined && input . IsOrganizationTrail !== null && { IsOrganizationTrail : input . IsOrganizationTrail } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . LogFileValidationEnabled !== undefined && input . LogFileValidationEnabled !== null && { LogFileValidationEnabled : input . LogFileValidationEnabled } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . S3BucketName !== undefined && input . S3BucketName !== null && { S3BucketName : input . S3BucketName } ) , ... ( input . S3KeyPrefix !== undefined && input . S3KeyPrefix !== null && { S3KeyPrefix : input . S3KeyPrefix } ) , ... ( input . SnsTopicArn !== undefined && input . SnsTopicArn !== null && { SnsTopicArn : input . SnsTopicArn } ) , ... ( input . SnsTopicName !== undefined && input . SnsTopicName !== null && { SnsTopicName : input . SnsTopicName } ) , ... ( input . TrailArn !== undefined && input . TrailArn !== null && { TrailArn : input . TrailArn } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectArtifactsDetails = ( input , context ) : any => { return { ... ( input . ArtifactIdentifier !== undefined && input . ArtifactIdentifier !== null && { ArtifactIdentifier : input . ArtifactIdentifier } ) , ... ( input . EncryptionDisabled !== undefined && input . EncryptionDisabled !== null && { EncryptionDisabled : input . EncryptionDisabled } ) , ... ( input . Location !== undefined && input . Location !== null && { Location : input . Location } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . NamespaceType !== undefined && input . NamespaceType !== null && { NamespaceType : input . NamespaceType } ) , ... ( input . OverrideArtifactName !== undefined && input . OverrideArtifactName !== null && { OverrideArtifactName : input . OverrideArtifactName } ) , ... ( input . Packaging !== undefined && input . Packaging !== null && { Packaging : input . Packaging } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectArtifactsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCodeBuildProjectArtifactsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCodeBuildProjectDetails = ( input , context ) : any => { return { ... ( input . Artifacts !== undefined && input . Artifacts !== null && { Artifacts : serializeAws_restJson1AwsCodeBuildProjectArtifactsList ( input . Artifacts , context ) , } ) , ... ( input . EncryptionKey !== undefined && input . EncryptionKey !== null && { EncryptionKey : input . EncryptionKey } ) , ... ( input . Environment !== undefined && input . Environment !== null && { Environment : serializeAws_restJson1AwsCodeBuildProjectEnvironment ( input . Environment , context ) , } ) , ... ( input . LogsConfig !== undefined && input . LogsConfig !== null && { LogsConfig : serializeAws_restJson1AwsCodeBuildProjectLogsConfigDetails ( input . LogsConfig , context ) , } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ServiceRole !== undefined && input . ServiceRole !== null && { ServiceRole : input . ServiceRole } ) , ... ( input . Source !== undefined && input . Source !== null && { Source : serializeAws_restJson1AwsCodeBuildProjectSource ( input . Source , context ) } ) , ... ( input . VpcConfig !== undefined && input . VpcConfig !== null && { VpcConfig : serializeAws_restJson1AwsCodeBuildProjectVpcConfig ( input . VpcConfig , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectEnvironment = ( input , context ) : any => { return { ... ( input . Certificate !== undefined && input . Certificate !== null && { Certificate : input . Certificate } ) , ... ( input . EnvironmentVariables !== undefined && input . EnvironmentVariables !== null && { EnvironmentVariables : serializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesList ( input . EnvironmentVariables , context ) , } ) , ... ( input . ImagePullCredentialsType !== undefined && input . ImagePullCredentialsType !== null && { ImagePullCredentialsType : input . ImagePullCredentialsType } ) , ... ( input . PrivilegedMode !== undefined && input . PrivilegedMode !== null && { PrivilegedMode : input . PrivilegedMode } ) , ... ( input . RegistryCredential !== undefined && input . RegistryCredential !== null && { RegistryCredential : serializeAws_restJson1AwsCodeBuildProjectEnvironmentRegistryCredential ( input . RegistryCredential , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsCodeBuildProjectEnvironmentRegistryCredential = ( input , context ) : any => { return { ... ( input . Credential !== undefined && input . Credential !== null && { Credential : input . Credential } ) , ... ( input . CredentialProvider !== undefined && input . CredentialProvider !== null && { CredentialProvider : input . CredentialProvider } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails = ( input , context ) : any => { return { ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StreamName !== undefined && input . StreamName !== null && { StreamName : input . StreamName } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectLogsConfigDetails = ( input , context ) : any => { return { ... ( input . CloudWatchLogs !== undefined && input . CloudWatchLogs !== null && { CloudWatchLogs : serializeAws_restJson1AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails ( input . CloudWatchLogs , context ) , } ) , ... ( input . S3Logs !== undefined && input . S3Logs !== null && { S3Logs : serializeAws_restJson1AwsCodeBuildProjectLogsConfigS3LogsDetails ( input . S3Logs , context ) , } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectLogsConfigS3LogsDetails = ( input , context ) : any => { return { ... ( input . EncryptionDisabled !== undefined && input . EncryptionDisabled !== null && { EncryptionDisabled : input . EncryptionDisabled } ) , ... ( input . Location !== undefined && input . Location !== null && { Location : input . Location } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectSource = ( input , context ) : any => { return { ... ( input . GitCloneDepth !== undefined && input . GitCloneDepth !== null && { GitCloneDepth : input . GitCloneDepth } ) , ... ( input . InsecureSsl !== undefined && input . InsecureSsl !== null && { InsecureSsl : input . InsecureSsl } ) , ... ( input . Location !== undefined && input . Location !== null && { Location : input . Location } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsCodeBuildProjectVpcConfig = ( input , context ) : any => { return { ... ( input . SecurityGroupIds !== undefined && input . SecurityGroupIds !== null && { SecurityGroupIds : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroupIds , context ) , } ) , ... ( input . Subnets !== undefined && input . Subnets !== null && { Subnets : serializeAws_restJson1NonEmptyStringList ( input . Subnets , context ) } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsCorsConfiguration = ( input , context ) : any => { return { ... ( input . AllowCredentials !== undefined && input . AllowCredentials !== null && { AllowCredentials : input . AllowCredentials } ) , ... ( input . AllowHeaders !== undefined && input . AllowHeaders !== null && { AllowHeaders : serializeAws_restJson1NonEmptyStringList ( input . AllowHeaders , context ) , } ) , ... ( input . AllowMethods !== undefined && input . AllowMethods !== null && { AllowMethods : serializeAws_restJson1NonEmptyStringList ( input . AllowMethods , context ) , } ) , ... ( input . AllowOrigins !== undefined && input . AllowOrigins !== null && { AllowOrigins : serializeAws_restJson1NonEmptyStringList ( input . AllowOrigins , context ) , } ) , ... ( input . ExposeHeaders !== undefined && input . ExposeHeaders !== null && { ExposeHeaders : serializeAws_restJson1NonEmptyStringList ( input . ExposeHeaders , context ) , } ) , ... ( input . MaxAge !== undefined && input . MaxAge !== null && { MaxAge : input . MaxAge } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableAttributeDefinition = ( input , context ) : any => { return { ... ( input . AttributeName !== undefined && input . AttributeName !== null && { AttributeName : input . AttributeName } ) , ... ( input . AttributeType !== undefined && input . AttributeType !== null && { AttributeType : input . AttributeType } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableAttributeDefinitionList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableAttributeDefinition ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableBillingModeSummary = ( input , context ) : any => { return { ... ( input . BillingMode !== undefined && input . BillingMode !== null && { BillingMode : input . BillingMode } ) , ... ( input . LastUpdateToPayPerRequestDateTime !== undefined && input . LastUpdateToPayPerRequestDateTime !== null && { LastUpdateToPayPerRequestDateTime : input . LastUpdateToPayPerRequestDateTime , } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableDetails = ( input , context ) : any => { return { ... ( input . AttributeDefinitions !== undefined && input . AttributeDefinitions !== null && { AttributeDefinitions : serializeAws_restJson1AwsDynamoDbTableAttributeDefinitionList ( input . AttributeDefinitions , context ) , } ) , ... ( input . BillingModeSummary !== undefined && input . BillingModeSummary !== null && { BillingModeSummary : serializeAws_restJson1AwsDynamoDbTableBillingModeSummary ( input . BillingModeSummary , context ) , } ) , ... ( input . CreationDateTime !== undefined && input . CreationDateTime !== null && { CreationDateTime : input . CreationDateTime } ) , ... ( input . GlobalSecondaryIndexes !== undefined && input . GlobalSecondaryIndexes !== null && { GlobalSecondaryIndexes : serializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndexList ( input . GlobalSecondaryIndexes , context ) , } ) , ... ( input . GlobalTableVersion !== undefined && input . GlobalTableVersion !== null && { GlobalTableVersion : input . GlobalTableVersion } ) , ... ( input . ItemCount !== undefined && input . ItemCount !== null && { ItemCount : input . ItemCount } ) , ... ( input . KeySchema !== undefined && input . KeySchema !== null && { KeySchema : serializeAws_restJson1AwsDynamoDbTableKeySchemaList ( input . KeySchema , context ) , } ) , ... ( input . LatestStreamArn !== undefined && input . LatestStreamArn !== null && { LatestStreamArn : input . LatestStreamArn } ) , ... ( input . LatestStreamLabel !== undefined && input . LatestStreamLabel !== null && { LatestStreamLabel : input . LatestStreamLabel } ) , ... ( input . LocalSecondaryIndexes !== undefined && input . LocalSecondaryIndexes !== null && { LocalSecondaryIndexes : serializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndexList ( input . LocalSecondaryIndexes , context ) , } ) , ... ( input . ProvisionedThroughput !== undefined && input . ProvisionedThroughput !== null && { ProvisionedThroughput : serializeAws_restJson1AwsDynamoDbTableProvisionedThroughput ( input . ProvisionedThroughput , context ) , } ) , ... ( input . Replicas !== undefined && input . Replicas !== null && { Replicas : serializeAws_restJson1AwsDynamoDbTableReplicaList ( input . Replicas , context ) , } ) , ... ( input . RestoreSummary !== undefined && input . RestoreSummary !== null && { RestoreSummary : serializeAws_restJson1AwsDynamoDbTableRestoreSummary ( input . RestoreSummary , context ) , } ) , ... ( input . SseDescription !== undefined && input . SseDescription !== null && { SseDescription : serializeAws_restJson1AwsDynamoDbTableSseDescription ( input . SseDescription , context ) , } ) , ... ( input . StreamSpecification !== undefined && input . StreamSpecification !== null && { StreamSpecification : serializeAws_restJson1AwsDynamoDbTableStreamSpecification ( input . StreamSpecification , context ) , } ) , ... ( input . TableId !== undefined && input . TableId !== null && { TableId : input . TableId } ) , ... ( input . TableName !== undefined && input . TableName !== null && { TableName : input . TableName } ) , ... ( input . TableSizeBytes !== undefined && input . TableSizeBytes !== null && { TableSizeBytes : input . TableSizeBytes } ) , ... ( input . TableStatus !== undefined && input . TableStatus !== null && { TableStatus : input . TableStatus } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndex = ( input , context ) : any => { return { ... ( input . Backfilling !== undefined && input . Backfilling !== null && { Backfilling : input . Backfilling } ) , ... ( input . IndexArn !== undefined && input . IndexArn !== null && { IndexArn : input . IndexArn } ) , ... ( input . IndexName !== undefined && input . IndexName !== null && { IndexName : input . IndexName } ) , ... ( input . IndexSizeBytes !== undefined && input . IndexSizeBytes !== null && { IndexSizeBytes : input . IndexSizeBytes } ) , ... ( input . IndexStatus !== undefined && input . IndexStatus !== null && { IndexStatus : input . IndexStatus } ) , ... ( input . ItemCount !== undefined && input . ItemCount !== null && { ItemCount : input . ItemCount } ) , ... ( input . KeySchema !== undefined && input . KeySchema !== null && { KeySchema : serializeAws_restJson1AwsDynamoDbTableKeySchemaList ( input . KeySchema , context ) , } ) , ... ( input . Projection !== undefined && input . Projection !== null && { Projection : serializeAws_restJson1AwsDynamoDbTableProjection ( input . Projection , context ) , } ) , ... ( input . ProvisionedThroughput !== undefined && input . ProvisionedThroughput !== null && { ProvisionedThroughput : serializeAws_restJson1AwsDynamoDbTableProvisionedThroughput ( input . ProvisionedThroughput , context ) , } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndexList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndex ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableKeySchema = ( input , context ) : any => { return { ... ( input . AttributeName !== undefined && input . AttributeName !== null && { AttributeName : input . AttributeName } ) , ... ( input . KeyType !== undefined && input . KeyType !== null && { KeyType : input . KeyType } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableKeySchemaList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableKeySchema ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndex = ( input , context ) : any => { return { ... ( input . IndexArn !== undefined && input . IndexArn !== null && { IndexArn : input . IndexArn } ) , ... ( input . IndexName !== undefined && input . IndexName !== null && { IndexName : input . IndexName } ) , ... ( input . KeySchema !== undefined && input . KeySchema !== null && { KeySchema : serializeAws_restJson1AwsDynamoDbTableKeySchemaList ( input . KeySchema , context ) , } ) , ... ( input . Projection !== undefined && input . Projection !== null && { Projection : serializeAws_restJson1AwsDynamoDbTableProjection ( input . Projection , context ) , } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndexList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndex ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableProjection = ( input , context ) : any => { return { ... ( input . NonKeyAttributes !== undefined && input . NonKeyAttributes !== null && { NonKeyAttributes : serializeAws_restJson1StringList ( input . NonKeyAttributes , context ) , } ) , ... ( input . ProjectionType !== undefined && input . ProjectionType !== null && { ProjectionType : input . ProjectionType } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableProvisionedThroughput = ( input , context ) : any => { return { ... ( input . LastDecreaseDateTime !== undefined && input . LastDecreaseDateTime !== null && { LastDecreaseDateTime : input . LastDecreaseDateTime } ) , ... ( input . LastIncreaseDateTime !== undefined && input . LastIncreaseDateTime !== null && { LastIncreaseDateTime : input . LastIncreaseDateTime } ) , ... ( input . NumberOfDecreasesToday !== undefined && input . NumberOfDecreasesToday !== null && { NumberOfDecreasesToday : input . NumberOfDecreasesToday } ) , ... ( input . ReadCapacityUnits !== undefined && input . ReadCapacityUnits !== null && { ReadCapacityUnits : input . ReadCapacityUnits } ) , ... ( input . WriteCapacityUnits !== undefined && input . WriteCapacityUnits !== null && { WriteCapacityUnits : input . WriteCapacityUnits } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride = ( input , context ) : any => { return { ... ( input . ReadCapacityUnits !== undefined && input . ReadCapacityUnits !== null && { ReadCapacityUnits : input . ReadCapacityUnits } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableReplica = ( input , context ) : any => { return { ... ( input . GlobalSecondaryIndexes !== undefined && input . GlobalSecondaryIndexes !== null && { GlobalSecondaryIndexes : serializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndexList ( input . GlobalSecondaryIndexes , context ) , } ) , ... ( input . KmsMasterKeyId !== undefined && input . KmsMasterKeyId !== null && { KmsMasterKeyId : input . KmsMasterKeyId } ) , ... ( input . ProvisionedThroughputOverride !== undefined && input . ProvisionedThroughputOverride !== null && { ProvisionedThroughputOverride : serializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride ( input . ProvisionedThroughputOverride , context ) , } ) , ... ( input . RegionName !== undefined && input . RegionName !== null && { RegionName : input . RegionName } ) , ... ( input . ReplicaStatus !== undefined && input . ReplicaStatus !== null && { ReplicaStatus : input . ReplicaStatus } ) , ... ( input . ReplicaStatusDescription !== undefined && input . ReplicaStatusDescription !== null && { ReplicaStatusDescription : input . ReplicaStatusDescription } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndex = ( input , context ) : any => { return { ... ( input . IndexName !== undefined && input . IndexName !== null && { IndexName : input . IndexName } ) , ... ( input . ProvisionedThroughputOverride !== undefined && input . ProvisionedThroughputOverride !== null && { ProvisionedThroughputOverride : serializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride ( input . ProvisionedThroughputOverride , context ) , } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndexList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndex ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableReplicaList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsDynamoDbTableReplica ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsDynamoDbTableRestoreSummary = ( input , context ) : any => { return { ... ( input . RestoreDateTime !== undefined && input . RestoreDateTime !== null && { RestoreDateTime : input . RestoreDateTime } ) , ... ( input . RestoreInProgress !== undefined && input . RestoreInProgress !== null && { RestoreInProgress : input . RestoreInProgress } ) , ... ( input . SourceBackupArn !== undefined && input . SourceBackupArn !== null && { SourceBackupArn : input . SourceBackupArn } ) , ... ( input . SourceTableArn !== undefined && input . SourceTableArn !== null && { SourceTableArn : input . SourceTableArn } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableSseDescription = ( input , context ) : any => { return { ... ( input . InaccessibleEncryptionDateTime !== undefined && input . InaccessibleEncryptionDateTime !== null && { InaccessibleEncryptionDateTime : input . InaccessibleEncryptionDateTime , } ) , ... ( input . KmsMasterKeyArn !== undefined && input . KmsMasterKeyArn !== null && { KmsMasterKeyArn : input . KmsMasterKeyArn } ) , ... ( input . SseType !== undefined && input . SseType !== null && { SseType : input . SseType } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsDynamoDbTableStreamSpecification = ( input , context ) : any => { return { ... ( input . StreamEnabled !== undefined && input . StreamEnabled !== null && { StreamEnabled : input . StreamEnabled } ) , ... ( input . StreamViewType !== undefined && input . StreamViewType !== null && { StreamViewType : input . StreamViewType } ) , } ; } ; const serializeAws_restJson1AwsEc2EipDetails = ( input , context ) : any => { return { ... ( input . AllocationId !== undefined && input . AllocationId !== null && { AllocationId : input . AllocationId } ) , ... ( input . AssociationId !== undefined && input . AssociationId !== null && { AssociationId : input . AssociationId } ) , ... ( input . Domain !== undefined && input . Domain !== null && { Domain : input . Domain } ) , ... ( input . InstanceId !== undefined && input . InstanceId !== null && { InstanceId : input . InstanceId } ) , ... ( input . NetworkBorderGroup !== undefined && input . NetworkBorderGroup !== null && { NetworkBorderGroup : input . NetworkBorderGroup } ) , ... ( input . NetworkInterfaceId !== undefined && input . NetworkInterfaceId !== null && { NetworkInterfaceId : input . NetworkInterfaceId } ) , ... ( input . NetworkInterfaceOwnerId !== undefined && input . NetworkInterfaceOwnerId !== null && { NetworkInterfaceOwnerId : input . NetworkInterfaceOwnerId } ) , ... ( input . PrivateIpAddress !== undefined && input . PrivateIpAddress !== null && { PrivateIpAddress : input . PrivateIpAddress } ) , ... ( input . PublicIp !== undefined && input . PublicIp !== null && { PublicIp : input . PublicIp } ) , ... ( input . PublicIpv4Pool !== undefined && input . PublicIpv4Pool !== null && { PublicIpv4Pool : input . PublicIpv4Pool } ) , } ; } ; const serializeAws_restJson1AwsEc2InstanceDetails = ( input , context ) : any => { return { ... ( input . IamInstanceProfileArn !== undefined && input . IamInstanceProfileArn !== null && { IamInstanceProfileArn : input . IamInstanceProfileArn } ) , ... ( input . ImageId !== undefined && input . ImageId !== null && { ImageId : input . ImageId } ) , ... ( input . IpV4Addresses !== undefined && input . IpV4Addresses !== null && { IpV4Addresses : serializeAws_restJson1StringList ( input . IpV4Addresses , context ) , } ) , ... ( input . IpV6Addresses !== undefined && input . IpV6Addresses !== null && { IpV6Addresses : serializeAws_restJson1StringList ( input . IpV6Addresses , context ) , } ) , ... ( input . KeyName !== undefined && input . KeyName !== null && { KeyName : input . KeyName } ) , ... ( input . LaunchedAt !== undefined && input . LaunchedAt !== null && { LaunchedAt : input . LaunchedAt } ) , ... ( input . NetworkInterfaces !== undefined && input . NetworkInterfaces !== null && { NetworkInterfaces : serializeAws_restJson1AwsEc2InstanceNetworkInterfacesList ( input . NetworkInterfaces , context ) , } ) , ... ( input . SubnetId !== undefined && input . SubnetId !== null && { SubnetId : input . SubnetId } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsEc2InstanceNetworkInterfacesDetails = ( input , context ) : any => { return { ... ( input . NetworkInterfaceId !== undefined && input . NetworkInterfaceId !== null && { NetworkInterfaceId : input . NetworkInterfaceId } ) , } ; } ; const serializeAws_restJson1AwsEc2InstanceNetworkInterfacesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2InstanceNetworkInterfacesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2NetworkAclAssociation = ( input , context ) : any => { return { ... ( input . NetworkAclAssociationId !== undefined && input . NetworkAclAssociationId !== null && { NetworkAclAssociationId : input . NetworkAclAssociationId } ) , ... ( input . NetworkAclId !== undefined && input . NetworkAclId !== null && { NetworkAclId : input . NetworkAclId } ) , ... ( input . SubnetId !== undefined && input . SubnetId !== null && { SubnetId : input . SubnetId } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkAclAssociationList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2NetworkAclAssociation ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2NetworkAclDetails = ( input , context ) : any => { return { ... ( input . Associations !== undefined && input . Associations !== null && { Associations : serializeAws_restJson1AwsEc2NetworkAclAssociationList ( input . Associations , context ) , } ) , ... ( input . Entries !== undefined && input . Entries !== null && { Entries : serializeAws_restJson1AwsEc2NetworkAclEntryList ( input . Entries , context ) } ) , ... ( input . IsDefault !== undefined && input . IsDefault !== null && { IsDefault : input . IsDefault } ) , ... ( input . NetworkAclId !== undefined && input . NetworkAclId !== null && { NetworkAclId : input . NetworkAclId } ) , ... ( input . OwnerId !== undefined && input . OwnerId !== null && { OwnerId : input . OwnerId } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkAclEntry = ( input , context ) : any => { return { ... ( input . CidrBlock !== undefined && input . CidrBlock !== null && { CidrBlock : input . CidrBlock } ) , ... ( input . Egress !== undefined && input . Egress !== null && { Egress : input . Egress } ) , ... ( input . IcmpTypeCode !== undefined && input . IcmpTypeCode !== null && { IcmpTypeCode : serializeAws_restJson1IcmpTypeCode ( input . IcmpTypeCode , context ) } ) , ... ( input . Ipv6CidrBlock !== undefined && input . Ipv6CidrBlock !== null && { Ipv6CidrBlock : input . Ipv6CidrBlock } ) , ... ( input . PortRange !== undefined && input . PortRange !== null && { PortRange : serializeAws_restJson1PortRangeFromTo ( input . PortRange , context ) } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . RuleAction !== undefined && input . RuleAction !== null && { RuleAction : input . RuleAction } ) , ... ( input . RuleNumber !== undefined && input . RuleNumber !== null && { RuleNumber : input . RuleNumber } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkAclEntryList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2NetworkAclEntry ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceAttachment = ( input , context ) : any => { return { ... ( input . AttachTime !== undefined && input . AttachTime !== null && { AttachTime : input . AttachTime } ) , ... ( input . AttachmentId !== undefined && input . AttachmentId !== null && { AttachmentId : input . AttachmentId } ) , ... ( input . DeleteOnTermination !== undefined && input . DeleteOnTermination !== null && { DeleteOnTermination : input . DeleteOnTermination } ) , ... ( input . DeviceIndex !== undefined && input . DeviceIndex !== null && { DeviceIndex : input . DeviceIndex } ) , ... ( input . InstanceId !== undefined && input . InstanceId !== null && { InstanceId : input . InstanceId } ) , ... ( input . InstanceOwnerId !== undefined && input . InstanceOwnerId !== null && { InstanceOwnerId : input . InstanceOwnerId } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceDetails = ( input , context ) : any => { return { ... ( input . Attachment !== undefined && input . Attachment !== null && { Attachment : serializeAws_restJson1AwsEc2NetworkInterfaceAttachment ( input . Attachment , context ) , } ) , ... ( input . IpV6Addresses !== undefined && input . IpV6Addresses !== null && { IpV6Addresses : serializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressList ( input . IpV6Addresses , context ) , } ) , ... ( input . NetworkInterfaceId !== undefined && input . NetworkInterfaceId !== null && { NetworkInterfaceId : input . NetworkInterfaceId } ) , ... ( input . PrivateIpAddresses !== undefined && input . PrivateIpAddresses !== null && { PrivateIpAddresses : serializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressList ( input . PrivateIpAddresses , context ) , } ) , ... ( input . PublicDnsName !== undefined && input . PublicDnsName !== null && { PublicDnsName : input . PublicDnsName } ) , ... ( input . PublicIp !== undefined && input . PublicIp !== null && { PublicIp : input . PublicIp } ) , ... ( input . SecurityGroups !== undefined && input . SecurityGroups !== null && { SecurityGroups : serializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroupList ( input . SecurityGroups , context ) , } ) , ... ( input . SourceDestCheck !== undefined && input . SourceDestCheck !== null && { SourceDestCheck : input . SourceDestCheck } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressDetail = ( input , context ) : any => { return { ... ( input . IpV6Address !== undefined && input . IpV6Address !== null && { IpV6Address : input . IpV6Address } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressDetail ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressDetail = ( input , context ) : any => { return { ... ( input . PrivateDnsName !== undefined && input . PrivateDnsName !== null && { PrivateDnsName : input . PrivateDnsName } ) , ... ( input . PrivateIpAddress !== undefined && input . PrivateIpAddress !== null && { PrivateIpAddress : input . PrivateIpAddress } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressDetail ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroup = ( input , context ) : any => { return { ... ( input . GroupId !== undefined && input . GroupId !== null && { GroupId : input . GroupId } ) , ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , } ; } ; const serializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroupList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SecurityGroupDetails = ( input , context ) : any => { return { ... ( input . GroupId !== undefined && input . GroupId !== null && { GroupId : input . GroupId } ) , ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , ... ( input . IpPermissions !== undefined && input . IpPermissions !== null && { IpPermissions : serializeAws_restJson1AwsEc2SecurityGroupIpPermissionList ( input . IpPermissions , context ) , } ) , ... ( input . IpPermissionsEgress !== undefined && input . IpPermissionsEgress !== null && { IpPermissionsEgress : serializeAws_restJson1AwsEc2SecurityGroupIpPermissionList ( input . IpPermissionsEgress , context ) , } ) , ... ( input . OwnerId !== undefined && input . OwnerId !== null && { OwnerId : input . OwnerId } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpPermission = ( input , context ) : any => { return { ... ( input . FromPort !== undefined && input . FromPort !== null && { FromPort : input . FromPort } ) , ... ( input . IpProtocol !== undefined && input . IpProtocol !== null && { IpProtocol : input . IpProtocol } ) , ... ( input . IpRanges !== undefined && input . IpRanges !== null && { IpRanges : serializeAws_restJson1AwsEc2SecurityGroupIpRangeList ( input . IpRanges , context ) , } ) , ... ( input . Ipv6Ranges !== undefined && input . Ipv6Ranges !== null && { Ipv6Ranges : serializeAws_restJson1AwsEc2SecurityGroupIpv6RangeList ( input . Ipv6Ranges , context ) , } ) , ... ( input . PrefixListIds !== undefined && input . PrefixListIds !== null && { PrefixListIds : serializeAws_restJson1AwsEc2SecurityGroupPrefixListIdList ( input . PrefixListIds , context ) , } ) , ... ( input . ToPort !== undefined && input . ToPort !== null && { ToPort : input . ToPort } ) , ... ( input . UserIdGroupPairs !== undefined && input . UserIdGroupPairs !== null && { UserIdGroupPairs : serializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPairList ( input . UserIdGroupPairs , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpPermissionList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2SecurityGroupIpPermission ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpRange = ( input , context ) : any => { return { ... ( input . CidrIp !== undefined && input . CidrIp !== null && { CidrIp : input . CidrIp } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpRangeList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2SecurityGroupIpRange ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpv6Range = ( input , context ) : any => { return { ... ( input . CidrIpv6 !== undefined && input . CidrIpv6 !== null && { CidrIpv6 : input . CidrIpv6 } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupIpv6RangeList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2SecurityGroupIpv6Range ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SecurityGroupPrefixListId = ( input , context ) : any => { return { ... ( input . PrefixListId !== undefined && input . PrefixListId !== null && { PrefixListId : input . PrefixListId } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupPrefixListIdList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2SecurityGroupPrefixListId ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPair = ( input , context ) : any => { return { ... ( input . GroupId !== undefined && input . GroupId !== null && { GroupId : input . GroupId } ) , ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , ... ( input . PeeringStatus !== undefined && input . PeeringStatus !== null && { PeeringStatus : input . PeeringStatus } ) , ... ( input . UserId !== undefined && input . UserId !== null && { UserId : input . UserId } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , ... ( input . VpcPeeringConnectionId !== undefined && input . VpcPeeringConnectionId !== null && { VpcPeeringConnectionId : input . VpcPeeringConnectionId } ) , } ; } ; const serializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPairList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPair ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2SubnetDetails = ( input , context ) : any => { return { ... ( input . AssignIpv6AddressOnCreation !== undefined && input . AssignIpv6AddressOnCreation !== null && { AssignIpv6AddressOnCreation : input . AssignIpv6AddressOnCreation } ) , ... ( input . AvailabilityZone !== undefined && input . AvailabilityZone !== null && { AvailabilityZone : input . AvailabilityZone } ) , ... ( input . AvailabilityZoneId !== undefined && input . AvailabilityZoneId !== null && { AvailabilityZoneId : input . AvailabilityZoneId } ) , ... ( input . AvailableIpAddressCount !== undefined && input . AvailableIpAddressCount !== null && { AvailableIpAddressCount : input . AvailableIpAddressCount } ) , ... ( input . CidrBlock !== undefined && input . CidrBlock !== null && { CidrBlock : input . CidrBlock } ) , ... ( input . DefaultForAz !== undefined && input . DefaultForAz !== null && { DefaultForAz : input . DefaultForAz } ) , ... ( input . Ipv6CidrBlockAssociationSet !== undefined && input . Ipv6CidrBlockAssociationSet !== null && { Ipv6CidrBlockAssociationSet : serializeAws_restJson1Ipv6CidrBlockAssociationList ( input . Ipv6CidrBlockAssociationSet , context ) , } ) , ... ( input . MapPublicIpOnLaunch !== undefined && input . MapPublicIpOnLaunch !== null && { MapPublicIpOnLaunch : input . MapPublicIpOnLaunch } ) , ... ( input . OwnerId !== undefined && input . OwnerId !== null && { OwnerId : input . OwnerId } ) , ... ( input . State !== undefined && input . State !== null && { State : input . State } ) , ... ( input . SubnetArn !== undefined && input . SubnetArn !== null && { SubnetArn : input . SubnetArn } ) , ... ( input . SubnetId !== undefined && input . SubnetId !== null && { SubnetId : input . SubnetId } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsEc2VolumeAttachment = ( input , context ) : any => { return { ... ( input . AttachTime !== undefined && input . AttachTime !== null && { AttachTime : input . AttachTime } ) , ... ( input . DeleteOnTermination !== undefined && input . DeleteOnTermination !== null && { DeleteOnTermination : input . DeleteOnTermination } ) , ... ( input . InstanceId !== undefined && input . InstanceId !== null && { InstanceId : input . InstanceId } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsEc2VolumeAttachmentList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2VolumeAttachment ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2VolumeDetails = ( input , context ) : any => { return { ... ( input . Attachments !== undefined && input . Attachments !== null && { Attachments : serializeAws_restJson1AwsEc2VolumeAttachmentList ( input . Attachments , context ) , } ) , ... ( input . CreateTime !== undefined && input . CreateTime !== null && { CreateTime : input . CreateTime } ) , ... ( input . Encrypted !== undefined && input . Encrypted !== null && { Encrypted : input . Encrypted } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . Size !== undefined && input . Size !== null && { Size : input . Size } ) , ... ( input . SnapshotId !== undefined && input . SnapshotId !== null && { SnapshotId : input . SnapshotId } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsEc2VpcDetails = ( input , context ) : any => { return { ... ( input . CidrBlockAssociationSet !== undefined && input . CidrBlockAssociationSet !== null && { CidrBlockAssociationSet : serializeAws_restJson1CidrBlockAssociationList ( input . CidrBlockAssociationSet , context ) , } ) , ... ( input . DhcpOptionsId !== undefined && input . DhcpOptionsId !== null && { DhcpOptionsId : input . DhcpOptionsId } ) , ... ( input . Ipv6CidrBlockAssociationSet !== undefined && input . Ipv6CidrBlockAssociationSet !== null && { Ipv6CidrBlockAssociationSet : serializeAws_restJson1Ipv6CidrBlockAssociationList ( input . Ipv6CidrBlockAssociationSet , context ) , } ) , ... ( input . State !== undefined && input . State !== null && { State : input . State } ) , } ; } ; const serializeAws_restJson1AwsEc2VpcEndpointServiceDetails = ( input , context ) : any => { return { ... ( input . AcceptanceRequired !== undefined && input . AcceptanceRequired !== null && { AcceptanceRequired : input . AcceptanceRequired } ) , ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1NonEmptyStringList ( input . AvailabilityZones , context ) , } ) , ... ( input . BaseEndpointDnsNames !== undefined && input . BaseEndpointDnsNames !== null && { BaseEndpointDnsNames : serializeAws_restJson1NonEmptyStringList ( input . BaseEndpointDnsNames , context ) , } ) , ... ( input . GatewayLoadBalancerArns !== undefined && input . GatewayLoadBalancerArns !== null && { GatewayLoadBalancerArns : serializeAws_restJson1NonEmptyStringList ( input . GatewayLoadBalancerArns , context ) , } ) , ... ( input . ManagesVpcEndpoints !== undefined && input . ManagesVpcEndpoints !== null && { ManagesVpcEndpoints : input . ManagesVpcEndpoints } ) , ... ( input . NetworkLoadBalancerArns !== undefined && input . NetworkLoadBalancerArns !== null && { NetworkLoadBalancerArns : serializeAws_restJson1NonEmptyStringList ( input . NetworkLoadBalancerArns , context ) , } ) , ... ( input . PrivateDnsName !== undefined && input . PrivateDnsName !== null && { PrivateDnsName : input . PrivateDnsName } ) , ... ( input . ServiceId !== undefined && input . ServiceId !== null && { ServiceId : input . ServiceId } ) , ... ( input . ServiceName !== undefined && input . ServiceName !== null && { ServiceName : input . ServiceName } ) , ... ( input . ServiceState !== undefined && input . ServiceState !== null && { ServiceState : input . ServiceState } ) , ... ( input . ServiceType !== undefined && input . ServiceType !== null && { ServiceType : serializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeList ( input . ServiceType , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeDetails = ( input , context ) : any => { return { ... ( input . ServiceType !== undefined && input . ServiceType !== null && { ServiceType : input . ServiceType } ) , } ; } ; const serializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2VpnConnectionDetails = ( input , context ) : any => { return { ... ( input . Category !== undefined && input . Category !== null && { Category : input . Category } ) , ... ( input . CustomerGatewayConfiguration !== undefined && input . CustomerGatewayConfiguration !== null && { CustomerGatewayConfiguration : input . CustomerGatewayConfiguration , } ) , ... ( input . CustomerGatewayId !== undefined && input . CustomerGatewayId !== null && { CustomerGatewayId : input . CustomerGatewayId } ) , ... ( input . Options !== undefined && input . Options !== null && { Options : serializeAws_restJson1AwsEc2VpnConnectionOptionsDetails ( input . Options , context ) , } ) , ... ( input . Routes !== undefined && input . Routes !== null && { Routes : serializeAws_restJson1AwsEc2VpnConnectionRoutesList ( input . Routes , context ) } ) , ... ( input . State !== undefined && input . State !== null && { State : input . State } ) , ... ( input . TransitGatewayId !== undefined && input . TransitGatewayId !== null && { TransitGatewayId : input . TransitGatewayId } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . VgwTelemetry !== undefined && input . VgwTelemetry !== null && { VgwTelemetry : serializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryList ( input . VgwTelemetry , context ) , } ) , ... ( input . VpnConnectionId !== undefined && input . VpnConnectionId !== null && { VpnConnectionId : input . VpnConnectionId } ) , ... ( input . VpnGatewayId !== undefined && input . VpnGatewayId !== null && { VpnGatewayId : input . VpnGatewayId } ) , } ; } ; const serializeAws_restJson1AwsEc2VpnConnectionOptionsDetails = ( input , context ) : any => { return { ... ( input . StaticRoutesOnly !== undefined && input . StaticRoutesOnly !== null && { StaticRoutesOnly : input . StaticRoutesOnly } ) , ... ( input . TunnelOptions !== undefined && input . TunnelOptions !== null && { TunnelOptions : serializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsList ( input . TunnelOptions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsDetails = ( input , context ) : any => { return { ... ( input . DpdTimeoutSeconds !== undefined && input . DpdTimeoutSeconds !== null && { DpdTimeoutSeconds : input . DpdTimeoutSeconds } ) , ... ( input . IkeVersions !== undefined && input . IkeVersions !== null && { IkeVersions : serializeAws_restJson1NonEmptyStringList ( input . IkeVersions , context ) , } ) , ... ( input . OutsideIpAddress !== undefined && input . OutsideIpAddress !== null && { OutsideIpAddress : input . OutsideIpAddress } ) , ... ( input . Phase1DhGroupNumbers !== undefined && input . Phase1DhGroupNumbers !== null && { Phase1DhGroupNumbers : serializeAws_restJson1IntegerList ( input . Phase1DhGroupNumbers , context ) , } ) , ... ( input . Phase1EncryptionAlgorithms !== undefined && input . Phase1EncryptionAlgorithms !== null && { Phase1EncryptionAlgorithms : serializeAws_restJson1NonEmptyStringList ( input . Phase1EncryptionAlgorithms , context ) , } ) , ... ( input . Phase1IntegrityAlgorithms !== undefined && input . Phase1IntegrityAlgorithms !== null && { Phase1IntegrityAlgorithms : serializeAws_restJson1NonEmptyStringList ( input . Phase1IntegrityAlgorithms , context ) , } ) , ... ( input . Phase1LifetimeSeconds !== undefined && input . Phase1LifetimeSeconds !== null && { Phase1LifetimeSeconds : input . Phase1LifetimeSeconds } ) , ... ( input . Phase2DhGroupNumbers !== undefined && input . Phase2DhGroupNumbers !== null && { Phase2DhGroupNumbers : serializeAws_restJson1IntegerList ( input . Phase2DhGroupNumbers , context ) , } ) , ... ( input . Phase2EncryptionAlgorithms !== undefined && input . Phase2EncryptionAlgorithms !== null && { Phase2EncryptionAlgorithms : serializeAws_restJson1NonEmptyStringList ( input . Phase2EncryptionAlgorithms , context ) , } ) , ... ( input . Phase2IntegrityAlgorithms !== undefined && input . Phase2IntegrityAlgorithms !== null && { Phase2IntegrityAlgorithms : serializeAws_restJson1NonEmptyStringList ( input . Phase2IntegrityAlgorithms , context ) , } ) , ... ( input . Phase2LifetimeSeconds !== undefined && input . Phase2LifetimeSeconds !== null && { Phase2LifetimeSeconds : input . Phase2LifetimeSeconds } ) , ... ( input . PreSharedKey !== undefined && input . PreSharedKey !== null && { PreSharedKey : input . PreSharedKey } ) , ... ( input . RekeyFuzzPercentage !== undefined && input . RekeyFuzzPercentage !== null && { RekeyFuzzPercentage : input . RekeyFuzzPercentage } ) , ... ( input . RekeyMarginTimeSeconds !== undefined && input . RekeyMarginTimeSeconds !== null && { RekeyMarginTimeSeconds : input . RekeyMarginTimeSeconds } ) , ... ( input . ReplayWindowSize !== undefined && input . ReplayWindowSize !== null && { ReplayWindowSize : input . ReplayWindowSize } ) , ... ( input . TunnelInsideCidr !== undefined && input . TunnelInsideCidr !== null && { TunnelInsideCidr : input . TunnelInsideCidr } ) , } ; } ; const serializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2VpnConnectionRoutesDetails = ( input , context ) : any => { return { ... ( input . DestinationCidrBlock !== undefined && input . DestinationCidrBlock !== null && { DestinationCidrBlock : input . DestinationCidrBlock } ) , ... ( input . State !== undefined && input . State !== null && { State : input . State } ) , } ; } ; const serializeAws_restJson1AwsEc2VpnConnectionRoutesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2VpnConnectionRoutesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryDetails = ( input , context ) : any => { return { ... ( input . AcceptedRouteCount !== undefined && input . AcceptedRouteCount !== null && { AcceptedRouteCount : input . AcceptedRouteCount } ) , ... ( input . CertificateArn !== undefined && input . CertificateArn !== null && { CertificateArn : input . CertificateArn } ) , ... ( input . LastStatusChange !== undefined && input . LastStatusChange !== null && { LastStatusChange : input . LastStatusChange } ) , ... ( input . OutsideIpAddress !== undefined && input . OutsideIpAddress !== null && { OutsideIpAddress : input . OutsideIpAddress } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StatusMessage !== undefined && input . StatusMessage !== null && { StatusMessage : input . StatusMessage } ) , } ; } ; const serializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcrContainerImageDetails = ( input , context ) : any => { return { ... ( input . Architecture !== undefined && input . Architecture !== null && { Architecture : input . Architecture } ) , ... ( input . ImageDigest !== undefined && input . ImageDigest !== null && { ImageDigest : input . ImageDigest } ) , ... ( input . ImagePublishedAt !== undefined && input . ImagePublishedAt !== null && { ImagePublishedAt : input . ImagePublishedAt } ) , ... ( input . ImageTags !== undefined && input . ImageTags !== null && { ImageTags : serializeAws_restJson1NonEmptyStringList ( input . ImageTags , context ) } ) , ... ( input . RegistryId !== undefined && input . RegistryId !== null && { RegistryId : input . RegistryId } ) , ... ( input . RepositoryName !== undefined && input . RepositoryName !== null && { RepositoryName : input . RepositoryName } ) , } ; } ; const serializeAws_restJson1AwsEcrRepositoryDetails = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . ImageScanningConfiguration !== undefined && input . ImageScanningConfiguration !== null && { ImageScanningConfiguration : serializeAws_restJson1AwsEcrRepositoryImageScanningConfigurationDetails ( input . ImageScanningConfiguration , context ) , } ) , ... ( input . ImageTagMutability !== undefined && input . ImageTagMutability !== null && { ImageTagMutability : input . ImageTagMutability } ) , ... ( input . LifecyclePolicy !== undefined && input . LifecyclePolicy !== null && { LifecyclePolicy : serializeAws_restJson1AwsEcrRepositoryLifecyclePolicyDetails ( input . LifecyclePolicy , context ) , } ) , ... ( input . RepositoryName !== undefined && input . RepositoryName !== null && { RepositoryName : input . RepositoryName } ) , ... ( input . RepositoryPolicyText !== undefined && input . RepositoryPolicyText !== null && { RepositoryPolicyText : input . RepositoryPolicyText } ) , } ; } ; const serializeAws_restJson1AwsEcrRepositoryImageScanningConfigurationDetails = ( input , context ) : any => { return { ... ( input . ScanOnPush !== undefined && input . ScanOnPush !== null && { ScanOnPush : input . ScanOnPush } ) , } ; } ; const serializeAws_restJson1AwsEcrRepositoryLifecyclePolicyDetails = ( input , context ) : any => { return { ... ( input . LifecyclePolicyText !== undefined && input . LifecyclePolicyText !== null && { LifecyclePolicyText : input . LifecyclePolicyText } ) , ... ( input . RegistryId !== undefined && input . RegistryId !== null && { RegistryId : input . RegistryId } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterClusterSettingsDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterClusterSettingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsClusterClusterSettingsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsClusterConfigurationDetails = ( input , context ) : any => { return { ... ( input . ExecuteCommandConfiguration !== undefined && input . ExecuteCommandConfiguration !== null && { ExecuteCommandConfiguration : serializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationDetails ( input . ExecuteCommandConfiguration , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationDetails = ( input , context ) : any => { return { ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . LogConfiguration !== undefined && input . LogConfiguration !== null && { LogConfiguration : serializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails ( input . LogConfiguration , context ) , } ) , ... ( input . Logging !== undefined && input . Logging !== null && { Logging : input . Logging } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails = ( input , context ) : any => { return { ... ( input . CloudWatchEncryptionEnabled !== undefined && input . CloudWatchEncryptionEnabled !== null && { CloudWatchEncryptionEnabled : input . CloudWatchEncryptionEnabled } ) , ... ( input . CloudWatchLogGroupName !== undefined && input . CloudWatchLogGroupName !== null && { CloudWatchLogGroupName : input . CloudWatchLogGroupName } ) , ... ( input . S3BucketName !== undefined && input . S3BucketName !== null && { S3BucketName : input . S3BucketName } ) , ... ( input . S3EncryptionEnabled !== undefined && input . S3EncryptionEnabled !== null && { S3EncryptionEnabled : input . S3EncryptionEnabled } ) , ... ( input . S3KeyPrefix !== undefined && input . S3KeyPrefix !== null && { S3KeyPrefix : input . S3KeyPrefix } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyDetails = ( input , context ) : any => { return { ... ( input . Base !== undefined && input . Base !== null && { Base : input . Base } ) , ... ( input . CapacityProvider !== undefined && input . CapacityProvider !== null && { CapacityProvider : input . CapacityProvider } ) , ... ( input . Weight !== undefined && input . Weight !== null && { Weight : input . Weight } ) , } ; } ; const serializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsClusterDetails = ( input , context ) : any => { return { ... ( input . CapacityProviders !== undefined && input . CapacityProviders !== null && { CapacityProviders : serializeAws_restJson1NonEmptyStringList ( input . CapacityProviders , context ) , } ) , ... ( input . ClusterSettings !== undefined && input . ClusterSettings !== null && { ClusterSettings : serializeAws_restJson1AwsEcsClusterClusterSettingsList ( input . ClusterSettings , context ) , } ) , ... ( input . Configuration !== undefined && input . Configuration !== null && { Configuration : serializeAws_restJson1AwsEcsClusterConfigurationDetails ( input . Configuration , context ) , } ) , ... ( input . DefaultCapacityProviderStrategy !== undefined && input . DefaultCapacityProviderStrategy !== null && { DefaultCapacityProviderStrategy : serializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyList ( input . DefaultCapacityProviderStrategy , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceCapacityProviderStrategyDetails = ( input , context ) : any => { return { ... ( input . Base !== undefined && input . Base !== null && { Base : input . Base } ) , ... ( input . CapacityProvider !== undefined && input . CapacityProvider !== null && { CapacityProvider : input . CapacityProvider } ) , ... ( input . Weight !== undefined && input . Weight !== null && { Weight : input . Weight } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceCapacityProviderStrategyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsServiceCapacityProviderStrategyDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails = ( input , context ) : any => { return { ... ( input . Enable !== undefined && input . Enable !== null && { Enable : input . Enable } ) , ... ( input . Rollback !== undefined && input . Rollback !== null && { Rollback : input . Rollback } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceDeploymentConfigurationDetails = ( input , context ) : any => { return { ... ( input . DeploymentCircuitBreaker !== undefined && input . DeploymentCircuitBreaker !== null && { DeploymentCircuitBreaker : serializeAws_restJson1AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails ( input . DeploymentCircuitBreaker , context ) , } ) , ... ( input . MaximumPercent !== undefined && input . MaximumPercent !== null && { MaximumPercent : input . MaximumPercent } ) , ... ( input . MinimumHealthyPercent !== undefined && input . MinimumHealthyPercent !== null && { MinimumHealthyPercent : input . MinimumHealthyPercent } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceDeploymentControllerDetails = ( input , context ) : any => { return { ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceDetails = ( input , context ) : any => { return { ... ( input . CapacityProviderStrategy !== undefined && input . CapacityProviderStrategy !== null && { CapacityProviderStrategy : serializeAws_restJson1AwsEcsServiceCapacityProviderStrategyList ( input . CapacityProviderStrategy , context ) , } ) , ... ( input . Cluster !== undefined && input . Cluster !== null && { Cluster : input . Cluster } ) , ... ( input . DeploymentConfiguration !== undefined && input . DeploymentConfiguration !== null && { DeploymentConfiguration : serializeAws_restJson1AwsEcsServiceDeploymentConfigurationDetails ( input . DeploymentConfiguration , context ) , } ) , ... ( input . DeploymentController !== undefined && input . DeploymentController !== null && { DeploymentController : serializeAws_restJson1AwsEcsServiceDeploymentControllerDetails ( input . DeploymentController , context ) , } ) , ... ( input . DesiredCount !== undefined && input . DesiredCount !== null && { DesiredCount : input . DesiredCount } ) , ... ( input . EnableEcsManagedTags !== undefined && input . EnableEcsManagedTags !== null && { EnableEcsManagedTags : input . EnableEcsManagedTags } ) , ... ( input . EnableExecuteCommand !== undefined && input . EnableExecuteCommand !== null && { EnableExecuteCommand : input . EnableExecuteCommand } ) , ... ( input . HealthCheckGracePeriodSeconds !== undefined && input . HealthCheckGracePeriodSeconds !== null && { HealthCheckGracePeriodSeconds : input . HealthCheckGracePeriodSeconds , } ) , ... ( input . LaunchType !== undefined && input . LaunchType !== null && { LaunchType : input . LaunchType } ) , ... ( input . LoadBalancers !== undefined && input . LoadBalancers !== null && { LoadBalancers : serializeAws_restJson1AwsEcsServiceLoadBalancersList ( input . LoadBalancers , context ) , } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . NetworkConfiguration !== undefined && input . NetworkConfiguration !== null && { NetworkConfiguration : serializeAws_restJson1AwsEcsServiceNetworkConfigurationDetails ( input . NetworkConfiguration , context ) , } ) , ... ( input . PlacementConstraints !== undefined && input . PlacementConstraints !== null && { PlacementConstraints : serializeAws_restJson1AwsEcsServicePlacementConstraintsList ( input . PlacementConstraints , context ) , } ) , ... ( input . PlacementStrategies !== undefined && input . PlacementStrategies !== null && { PlacementStrategies : serializeAws_restJson1AwsEcsServicePlacementStrategiesList ( input . PlacementStrategies , context ) , } ) , ... ( input . PlatformVersion !== undefined && input . PlatformVersion !== null && { PlatformVersion : input . PlatformVersion } ) , ... ( input . PropagateTags !== undefined && input . PropagateTags !== null && { PropagateTags : input . PropagateTags } ) , ... ( input . Role !== undefined && input . Role !== null && { Role : input . Role } ) , ... ( input . SchedulingStrategy !== undefined && input . SchedulingStrategy !== null && { SchedulingStrategy : input . SchedulingStrategy } ) , ... ( input . ServiceArn !== undefined && input . ServiceArn !== null && { ServiceArn : input . ServiceArn } ) , ... ( input . ServiceName !== undefined && input . ServiceName !== null && { ServiceName : input . ServiceName } ) , ... ( input . ServiceRegistries !== undefined && input . ServiceRegistries !== null && { ServiceRegistries : serializeAws_restJson1AwsEcsServiceServiceRegistriesList ( input . ServiceRegistries , context ) , } ) , ... ( input . TaskDefinition !== undefined && input . TaskDefinition !== null && { TaskDefinition : input . TaskDefinition } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceLoadBalancersDetails = ( input , context ) : any => { return { ... ( input . ContainerName !== undefined && input . ContainerName !== null && { ContainerName : input . ContainerName } ) , ... ( input . ContainerPort !== undefined && input . ContainerPort !== null && { ContainerPort : input . ContainerPort } ) , ... ( input . LoadBalancerName !== undefined && input . LoadBalancerName !== null && { LoadBalancerName : input . LoadBalancerName } ) , ... ( input . TargetGroupArn !== undefined && input . TargetGroupArn !== null && { TargetGroupArn : input . TargetGroupArn } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceLoadBalancersList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsServiceLoadBalancersDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails = ( input , context ) : any => { return { ... ( input . AssignPublicIp !== undefined && input . AssignPublicIp !== null && { AssignPublicIp : input . AssignPublicIp } ) , ... ( input . SecurityGroups !== undefined && input . SecurityGroups !== null && { SecurityGroups : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroups , context ) , } ) , ... ( input . Subnets !== undefined && input . Subnets !== null && { Subnets : serializeAws_restJson1NonEmptyStringList ( input . Subnets , context ) } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceNetworkConfigurationDetails = ( input , context ) : any => { return { ... ( input . AwsVpcConfiguration !== undefined && input . AwsVpcConfiguration !== null && { AwsVpcConfiguration : serializeAws_restJson1AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails ( input . AwsVpcConfiguration , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsServicePlacementConstraintsDetails = ( input , context ) : any => { return { ... ( input . Expression !== undefined && input . Expression !== null && { Expression : input . Expression } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsServicePlacementConstraintsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsServicePlacementConstraintsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsServicePlacementStrategiesDetails = ( input , context ) : any => { return { ... ( input . Field !== undefined && input . Field !== null && { Field : input . Field } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsServicePlacementStrategiesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsServicePlacementStrategiesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsServiceServiceRegistriesDetails = ( input , context ) : any => { return { ... ( input . ContainerName !== undefined && input . ContainerName !== null && { ContainerName : input . ContainerName } ) , ... ( input . ContainerPort !== undefined && input . ContainerPort !== null && { ContainerPort : input . ContainerPort } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . RegistryArn !== undefined && input . RegistryArn !== null && { RegistryArn : input . RegistryArn } ) , } ; } ; const serializeAws_restJson1AwsEcsServiceServiceRegistriesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsServiceServiceRegistriesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails = ( input , context ) : any => { return { ... ( input . Condition !== undefined && input . Condition !== null && { Condition : input . Condition } ) , ... ( input . ContainerName !== undefined && input . ContainerName !== null && { ContainerName : input . ContainerName } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDetails = ( input , context ) : any => { return { ... ( input . Command !== undefined && input . Command !== null && { Command : serializeAws_restJson1NonEmptyStringList ( input . Command , context ) } ) , ... ( input . Cpu !== undefined && input . Cpu !== null && { Cpu : input . Cpu } ) , ... ( input . DependsOn !== undefined && input . DependsOn !== null && { DependsOn : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnList ( input . DependsOn , context ) , } ) , ... ( input . DisableNetworking !== undefined && input . DisableNetworking !== null && { DisableNetworking : input . DisableNetworking } ) , ... ( input . DnsSearchDomains !== undefined && input . DnsSearchDomains !== null && { DnsSearchDomains : serializeAws_restJson1NonEmptyStringList ( input . DnsSearchDomains , context ) , } ) , ... ( input . DnsServers !== undefined && input . DnsServers !== null && { DnsServers : serializeAws_restJson1NonEmptyStringList ( input . DnsServers , context ) } ) , ... ( input . DockerLabels !== undefined && input . DockerLabels !== null && { DockerLabels : serializeAws_restJson1FieldMap ( input . DockerLabels , context ) } ) , ... ( input . DockerSecurityOptions !== undefined && input . DockerSecurityOptions !== null && { DockerSecurityOptions : serializeAws_restJson1NonEmptyStringList ( input . DockerSecurityOptions , context ) , } ) , ... ( input . EntryPoint !== undefined && input . EntryPoint !== null && { EntryPoint : serializeAws_restJson1NonEmptyStringList ( input . EntryPoint , context ) } ) , ... ( input . Environment !== undefined && input . Environment !== null && { Environment : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentList ( input . Environment , context ) , } ) , ... ( input . EnvironmentFiles !== undefined && input . EnvironmentFiles !== null && { EnvironmentFiles : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList ( input . EnvironmentFiles , context ) , } ) , ... ( input . Essential !== undefined && input . Essential !== null && { Essential : input . Essential } ) , ... ( input . ExtraHosts !== undefined && input . ExtraHosts !== null && { ExtraHosts : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsList ( input . ExtraHosts , context ) , } ) , ... ( input . FirelensConfiguration !== undefined && input . FirelensConfiguration !== null && { FirelensConfiguration : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails ( input . FirelensConfiguration , context ) , } ) , ... ( input . HealthCheck !== undefined && input . HealthCheck !== null && { HealthCheck : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails ( input . HealthCheck , context ) , } ) , ... ( input . Hostname !== undefined && input . Hostname !== null && { Hostname : input . Hostname } ) , ... ( input . Image !== undefined && input . Image !== null && { Image : input . Image } ) , ... ( input . Interactive !== undefined && input . Interactive !== null && { Interactive : input . Interactive } ) , ... ( input . Links !== undefined && input . Links !== null && { Links : serializeAws_restJson1NonEmptyStringList ( input . Links , context ) } ) , ... ( input . LinuxParameters !== undefined && input . LinuxParameters !== null && { LinuxParameters : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails ( input . LinuxParameters , context ) , } ) , ... ( input . LogConfiguration !== undefined && input . LogConfiguration !== null && { LogConfiguration : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails ( input . LogConfiguration , context ) , } ) , ... ( input . Memory !== undefined && input . Memory !== null && { Memory : input . Memory } ) , ... ( input . MemoryReservation !== undefined && input . MemoryReservation !== null && { MemoryReservation : input . MemoryReservation } ) , ... ( input . MountPoints !== undefined && input . MountPoints !== null && { MountPoints : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsList ( input . MountPoints , context ) , } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . PortMappings !== undefined && input . PortMappings !== null && { PortMappings : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsList ( input . PortMappings , context ) , } ) , ... ( input . Privileged !== undefined && input . Privileged !== null && { Privileged : input . Privileged } ) , ... ( input . PseudoTerminal !== undefined && input . PseudoTerminal !== null && { PseudoTerminal : input . PseudoTerminal } ) , ... ( input . ReadonlyRootFilesystem !== undefined && input . ReadonlyRootFilesystem !== null && { ReadonlyRootFilesystem : input . ReadonlyRootFilesystem } ) , ... ( input . RepositoryCredentials !== undefined && input . RepositoryCredentials !== null && { RepositoryCredentials : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails ( input . RepositoryCredentials , context ) , } ) , ... ( input . ResourceRequirements !== undefined && input . ResourceRequirements !== null && { ResourceRequirements : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList ( input . ResourceRequirements , context ) , } ) , ... ( input . Secrets !== undefined && input . Secrets !== null && { Secrets : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsList ( input . Secrets , context ) , } ) , ... ( input . StartTimeout !== undefined && input . StartTimeout !== null && { StartTimeout : input . StartTimeout } ) , ... ( input . StopTimeout !== undefined && input . StopTimeout !== null && { StopTimeout : input . StopTimeout } ) , ... ( input . SystemControls !== undefined && input . SystemControls !== null && { SystemControls : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsList ( input . SystemControls , context ) , } ) , ... ( input . Ulimits !== undefined && input . Ulimits !== null && { Ulimits : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsList ( input . Ulimits , context ) , } ) , ... ( input . User !== undefined && input . User !== null && { User : input . User } ) , ... ( input . VolumesFrom !== undefined && input . VolumesFrom !== null && { VolumesFrom : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromList ( input . VolumesFrom , context ) , } ) , ... ( input . WorkingDirectory !== undefined && input . WorkingDirectory !== null && { WorkingDirectory : input . WorkingDirectory } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails = ( input , context ) : any => { return { ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails = ( input , context ) : any => { return { ... ( input . Hostname !== undefined && input . Hostname !== null && { Hostname : input . Hostname } ) , ... ( input . IpAddress !== undefined && input . IpAddress !== null && { IpAddress : input . IpAddress } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails = ( input , context ) : any => { return { ... ( input . Options !== undefined && input . Options !== null && { Options : serializeAws_restJson1FieldMap ( input . Options , context ) } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails = ( input , context ) : any => { return { ... ( input . Command !== undefined && input . Command !== null && { Command : serializeAws_restJson1NonEmptyStringList ( input . Command , context ) } ) , ... ( input . Interval !== undefined && input . Interval !== null && { Interval : input . Interval } ) , ... ( input . Retries !== undefined && input . Retries !== null && { Retries : input . Retries } ) , ... ( input . StartPeriod !== undefined && input . StartPeriod !== null && { StartPeriod : input . StartPeriod } ) , ... ( input . Timeout !== undefined && input . Timeout !== null && { Timeout : input . Timeout } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails = ( input , context ) : any => { return { ... ( input . Add !== undefined && input . Add !== null && { Add : serializeAws_restJson1NonEmptyStringList ( input . Add , context ) } ) , ... ( input . Drop !== undefined && input . Drop !== null && { Drop : serializeAws_restJson1NonEmptyStringList ( input . Drop , context ) } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails = ( input , context ) : any => { return { ... ( input . Capabilities !== undefined && input . Capabilities !== null && { Capabilities : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails ( input . Capabilities , context ) , } ) , ... ( input . Devices !== undefined && input . Devices !== null && { Devices : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList ( input . Devices , context ) , } ) , ... ( input . InitProcessEnabled !== undefined && input . InitProcessEnabled !== null && { InitProcessEnabled : input . InitProcessEnabled } ) , ... ( input . MaxSwap !== undefined && input . MaxSwap !== null && { MaxSwap : input . MaxSwap } ) , ... ( input . SharedMemorySize !== undefined && input . SharedMemorySize !== null && { SharedMemorySize : input . SharedMemorySize } ) , ... ( input . Swappiness !== undefined && input . Swappiness !== null && { Swappiness : input . Swappiness } ) , ... ( input . Tmpfs !== undefined && input . Tmpfs !== null && { Tmpfs : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList ( input . Tmpfs , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails = ( input , context ) : any => { return { ... ( input . ContainerPath !== undefined && input . ContainerPath !== null && { ContainerPath : input . ContainerPath } ) , ... ( input . HostPath !== undefined && input . HostPath !== null && { HostPath : input . HostPath } ) , ... ( input . Permissions !== undefined && input . Permissions !== null && { Permissions : serializeAws_restJson1NonEmptyStringList ( input . Permissions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails = ( input , context ) : any => { return { ... ( input . ContainerPath !== undefined && input . ContainerPath !== null && { ContainerPath : input . ContainerPath } ) , ... ( input . MountOptions !== undefined && input . MountOptions !== null && { MountOptions : serializeAws_restJson1NonEmptyStringList ( input . MountOptions , context ) , } ) , ... ( input . Size !== undefined && input . Size !== null && { Size : input . Size } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails = ( input , context ) : any => { return { ... ( input . LogDriver !== undefined && input . LogDriver !== null && { LogDriver : input . LogDriver } ) , ... ( input . Options !== undefined && input . Options !== null && { Options : serializeAws_restJson1FieldMap ( input . Options , context ) } ) , ... ( input . SecretOptions !== undefined && input . SecretOptions !== null && { SecretOptions : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList ( input . SecretOptions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ValueFrom !== undefined && input . ValueFrom !== null && { ValueFrom : input . ValueFrom } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails = ( input , context ) : any => { return { ... ( input . ContainerPath !== undefined && input . ContainerPath !== null && { ContainerPath : input . ContainerPath } ) , ... ( input . ReadOnly !== undefined && input . ReadOnly !== null && { ReadOnly : input . ReadOnly } ) , ... ( input . SourceVolume !== undefined && input . SourceVolume !== null && { SourceVolume : input . SourceVolume } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails = ( input , context ) : any => { return { ... ( input . ContainerPort !== undefined && input . ContainerPort !== null && { ContainerPort : input . ContainerPort } ) , ... ( input . HostPort !== undefined && input . HostPort !== null && { HostPort : input . HostPort } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails = ( input , context ) : any => { return { ... ( input . CredentialsParameter !== undefined && input . CredentialsParameter !== null && { CredentialsParameter : input . CredentialsParameter } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails = ( input , context ) : any => { return { ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ValueFrom !== undefined && input . ValueFrom !== null && { ValueFrom : input . ValueFrom } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails = ( input , context ) : any => { return { ... ( input . Namespace !== undefined && input . Namespace !== null && { Namespace : input . Namespace } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails = ( input , context ) : any => { return { ... ( input . HardLimit !== undefined && input . HardLimit !== null && { HardLimit : input . HardLimit } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . SoftLimit !== undefined && input . SoftLimit !== null && { SoftLimit : input . SoftLimit } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails = ( input , context ) : any => { return { ... ( input . ReadOnly !== undefined && input . ReadOnly !== null && { ReadOnly : input . ReadOnly } ) , ... ( input . SourceContainer !== undefined && input . SourceContainer !== null && { SourceContainer : input . SourceContainer } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionDetails = ( input , context ) : any => { return { ... ( input . ContainerDefinitions !== undefined && input . ContainerDefinitions !== null && { ContainerDefinitions : serializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsList ( input . ContainerDefinitions , context ) , } ) , ... ( input . Cpu !== undefined && input . Cpu !== null && { Cpu : input . Cpu } ) , ... ( input . ExecutionRoleArn !== undefined && input . ExecutionRoleArn !== null && { ExecutionRoleArn : input . ExecutionRoleArn } ) , ... ( input . Family !== undefined && input . Family !== null && { Family : input . Family } ) , ... ( input . InferenceAccelerators !== undefined && input . InferenceAccelerators !== null && { InferenceAccelerators : serializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsList ( input . InferenceAccelerators , context ) , } ) , ... ( input . IpcMode !== undefined && input . IpcMode !== null && { IpcMode : input . IpcMode } ) , ... ( input . Memory !== undefined && input . Memory !== null && { Memory : input . Memory } ) , ... ( input . NetworkMode !== undefined && input . NetworkMode !== null && { NetworkMode : input . NetworkMode } ) , ... ( input . PidMode !== undefined && input . PidMode !== null && { PidMode : input . PidMode } ) , ... ( input . PlacementConstraints !== undefined && input . PlacementConstraints !== null && { PlacementConstraints : serializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsList ( input . PlacementConstraints , context ) , } ) , ... ( input . ProxyConfiguration !== undefined && input . ProxyConfiguration !== null && { ProxyConfiguration : serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationDetails ( input . ProxyConfiguration , context ) , } ) , ... ( input . RequiresCompatibilities !== undefined && input . RequiresCompatibilities !== null && { RequiresCompatibilities : serializeAws_restJson1NonEmptyStringList ( input . RequiresCompatibilities , context ) , } ) , ... ( input . TaskRoleArn !== undefined && input . TaskRoleArn !== null && { TaskRoleArn : input . TaskRoleArn } ) , ... ( input . Volumes !== undefined && input . Volumes !== null && { Volumes : serializeAws_restJson1AwsEcsTaskDefinitionVolumesList ( input . Volumes , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsDetails = ( input , context ) : any => { return { ... ( input . DeviceName !== undefined && input . DeviceName !== null && { DeviceName : input . DeviceName } ) , ... ( input . DeviceType !== undefined && input . DeviceType !== null && { DeviceType : input . DeviceType } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsDetails = ( input , context ) : any => { return { ... ( input . Expression !== undefined && input . Expression !== null && { Expression : input . Expression } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationDetails = ( input , context ) : any => { return { ... ( input . ContainerName !== undefined && input . ContainerName !== null && { ContainerName : input . ContainerName } ) , ... ( input . ProxyConfigurationProperties !== undefined && input . ProxyConfigurationProperties !== null && { ProxyConfigurationProperties : serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList ( input . ProxyConfigurationProperties , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesDetails = ( input , context ) : any => { return { ... ( input . DockerVolumeConfiguration !== undefined && input . DockerVolumeConfiguration !== null && { DockerVolumeConfiguration : serializeAws_restJson1AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails ( input . DockerVolumeConfiguration , context ) , } ) , ... ( input . EfsVolumeConfiguration !== undefined && input . EfsVolumeConfiguration !== null && { EfsVolumeConfiguration : serializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails ( input . EfsVolumeConfiguration , context ) , } ) , ... ( input . Host !== undefined && input . Host !== null && { Host : serializeAws_restJson1AwsEcsTaskDefinitionVolumesHostDetails ( input . Host , context ) , } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails = ( input , context ) : any => { return { ... ( input . Autoprovision !== undefined && input . Autoprovision !== null && { Autoprovision : input . Autoprovision } ) , ... ( input . Driver !== undefined && input . Driver !== null && { Driver : input . Driver } ) , ... ( input . DriverOpts !== undefined && input . DriverOpts !== null && { DriverOpts : serializeAws_restJson1FieldMap ( input . DriverOpts , context ) } ) , ... ( input . Labels !== undefined && input . Labels !== null && { Labels : serializeAws_restJson1FieldMap ( input . Labels , context ) } ) , ... ( input . Scope !== undefined && input . Scope !== null && { Scope : input . Scope } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails = ( input , context ) : any => { return { ... ( input . AccessPointId !== undefined && input . AccessPointId !== null && { AccessPointId : input . AccessPointId } ) , ... ( input . Iam !== undefined && input . Iam !== null && { Iam : input . Iam } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails = ( input , context ) : any => { return { ... ( input . AuthorizationConfig !== undefined && input . AuthorizationConfig !== null && { AuthorizationConfig : serializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails ( input . AuthorizationConfig , context ) , } ) , ... ( input . FilesystemId !== undefined && input . FilesystemId !== null && { FilesystemId : input . FilesystemId } ) , ... ( input . RootDirectory !== undefined && input . RootDirectory !== null && { RootDirectory : input . RootDirectory } ) , ... ( input . TransitEncryption !== undefined && input . TransitEncryption !== null && { TransitEncryption : input . TransitEncryption } ) , ... ( input . TransitEncryptionPort !== undefined && input . TransitEncryptionPort !== null && { TransitEncryptionPort : input . TransitEncryptionPort } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesHostDetails = ( input , context ) : any => { return { ... ( input . SourcePath !== undefined && input . SourcePath !== null && { SourcePath : input . SourcePath } ) , } ; } ; const serializeAws_restJson1AwsEcsTaskDefinitionVolumesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEcsTaskDefinitionVolumesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEksClusterDetails = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . CertificateAuthorityData !== undefined && input . CertificateAuthorityData !== null && { CertificateAuthorityData : input . CertificateAuthorityData } ) , ... ( input . ClusterStatus !== undefined && input . ClusterStatus !== null && { ClusterStatus : input . ClusterStatus } ) , ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : input . Endpoint } ) , ... ( input . Logging !== undefined && input . Logging !== null && { Logging : serializeAws_restJson1AwsEksClusterLoggingDetails ( input . Logging , context ) } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ResourcesVpcConfig !== undefined && input . ResourcesVpcConfig !== null && { ResourcesVpcConfig : serializeAws_restJson1AwsEksClusterResourcesVpcConfigDetails ( input . ResourcesVpcConfig , context ) , } ) , ... ( input . RoleArn !== undefined && input . RoleArn !== null && { RoleArn : input . RoleArn } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsEksClusterLoggingClusterLoggingDetails = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . Types !== undefined && input . Types !== null && { Types : serializeAws_restJson1NonEmptyStringList ( input . Types , context ) } ) , } ; } ; const serializeAws_restJson1AwsEksClusterLoggingClusterLoggingList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsEksClusterLoggingClusterLoggingDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsEksClusterLoggingDetails = ( input , context ) : any => { return { ... ( input . ClusterLogging !== undefined && input . ClusterLogging !== null && { ClusterLogging : serializeAws_restJson1AwsEksClusterLoggingClusterLoggingList ( input . ClusterLogging , context ) , } ) , } ; } ; const serializeAws_restJson1AwsEksClusterResourcesVpcConfigDetails = ( input , context ) : any => { return { ... ( input . SecurityGroupIds !== undefined && input . SecurityGroupIds !== null && { SecurityGroupIds : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroupIds , context ) , } ) , ... ( input . SubnetIds !== undefined && input . SubnetIds !== null && { SubnetIds : serializeAws_restJson1NonEmptyStringList ( input . SubnetIds , context ) } ) , } ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentDetails = ( input , context ) : any => { return { ... ( input . ApplicationName !== undefined && input . ApplicationName !== null && { ApplicationName : input . ApplicationName } ) , ... ( input . Cname !== undefined && input . Cname !== null && { Cname : input . Cname } ) , ... ( input . DateCreated !== undefined && input . DateCreated !== null && { DateCreated : input . DateCreated } ) , ... ( input . DateUpdated !== undefined && input . DateUpdated !== null && { DateUpdated : input . DateUpdated } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . EndpointUrl !== undefined && input . EndpointUrl !== null && { EndpointUrl : input . EndpointUrl } ) , ... ( input . EnvironmentArn !== undefined && input . EnvironmentArn !== null && { EnvironmentArn : input . EnvironmentArn } ) , ... ( input . EnvironmentId !== undefined && input . EnvironmentId !== null && { EnvironmentId : input . EnvironmentId } ) , ... ( input . EnvironmentLinks !== undefined && input . EnvironmentLinks !== null && { EnvironmentLinks : serializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLinks ( input . EnvironmentLinks , context ) , } ) , ... ( input . EnvironmentName !== undefined && input . EnvironmentName !== null && { EnvironmentName : input . EnvironmentName } ) , ... ( input . OptionSettings !== undefined && input . OptionSettings !== null && { OptionSettings : serializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSettings ( input . OptionSettings , context ) , } ) , ... ( input . PlatformArn !== undefined && input . PlatformArn !== null && { PlatformArn : input . PlatformArn } ) , ... ( input . SolutionStackName !== undefined && input . SolutionStackName !== null && { SolutionStackName : input . SolutionStackName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . Tier !== undefined && input . Tier !== null && { Tier : serializeAws_restJson1AwsElasticBeanstalkEnvironmentTier ( input . Tier , context ) } ) , ... ( input . VersionLabel !== undefined && input . VersionLabel !== null && { VersionLabel : input . VersionLabel } ) , } ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLink = ( input , context ) : any => { return { ... ( input . EnvironmentName !== undefined && input . EnvironmentName !== null && { EnvironmentName : input . EnvironmentName } ) , ... ( input . LinkName !== undefined && input . LinkName !== null && { LinkName : input . LinkName } ) , } ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLinks = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLink ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSetting = ( input , context ) : any => { return { ... ( input . Namespace !== undefined && input . Namespace !== null && { Namespace : input . Namespace } ) , ... ( input . OptionName !== undefined && input . OptionName !== null && { OptionName : input . OptionName } ) , ... ( input . ResourceName !== undefined && input . ResourceName !== null && { ResourceName : input . ResourceName } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSettings = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSetting ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElasticBeanstalkEnvironmentTier = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainDetails = ( input , context ) : any => { return { ... ( input . AccessPolicies !== undefined && input . AccessPolicies !== null && { AccessPolicies : input . AccessPolicies } ) , ... ( input . DomainEndpointOptions !== undefined && input . DomainEndpointOptions !== null && { DomainEndpointOptions : serializeAws_restJson1AwsElasticsearchDomainDomainEndpointOptions ( input . DomainEndpointOptions , context ) , } ) , ... ( input . DomainId !== undefined && input . DomainId !== null && { DomainId : input . DomainId } ) , ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . ElasticsearchClusterConfig !== undefined && input . ElasticsearchClusterConfig !== null && { ElasticsearchClusterConfig : serializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigDetails ( input . ElasticsearchClusterConfig , context ) , } ) , ... ( input . ElasticsearchVersion !== undefined && input . ElasticsearchVersion !== null && { ElasticsearchVersion : input . ElasticsearchVersion } ) , ... ( input . EncryptionAtRestOptions !== undefined && input . EncryptionAtRestOptions !== null && { EncryptionAtRestOptions : serializeAws_restJson1AwsElasticsearchDomainEncryptionAtRestOptions ( input . EncryptionAtRestOptions , context ) , } ) , ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : input . Endpoint } ) , ... ( input . Endpoints !== undefined && input . Endpoints !== null && { Endpoints : serializeAws_restJson1FieldMap ( input . Endpoints , context ) } ) , ... ( input . LogPublishingOptions !== undefined && input . LogPublishingOptions !== null && { LogPublishingOptions : serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptions ( input . LogPublishingOptions , context ) , } ) , ... ( input . NodeToNodeEncryptionOptions !== undefined && input . NodeToNodeEncryptionOptions !== null && { NodeToNodeEncryptionOptions : serializeAws_restJson1AwsElasticsearchDomainNodeToNodeEncryptionOptions ( input . NodeToNodeEncryptionOptions , context ) , } ) , ... ( input . ServiceSoftwareOptions !== undefined && input . ServiceSoftwareOptions !== null && { ServiceSoftwareOptions : serializeAws_restJson1AwsElasticsearchDomainServiceSoftwareOptions ( input . ServiceSoftwareOptions , context ) , } ) , ... ( input . VPCOptions !== undefined && input . VPCOptions !== null && { VPCOptions : serializeAws_restJson1AwsElasticsearchDomainVPCOptions ( input . VPCOptions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainDomainEndpointOptions = ( input , context ) : any => { return { ... ( input . EnforceHTTPS !== undefined && input . EnforceHTTPS !== null && { EnforceHTTPS : input . EnforceHTTPS } ) , ... ( input . TLSSecurityPolicy !== undefined && input . TLSSecurityPolicy !== null && { TLSSecurityPolicy : input . TLSSecurityPolicy } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigDetails = ( input , context ) : any => { return { ... ( input . DedicatedMasterCount !== undefined && input . DedicatedMasterCount !== null && { DedicatedMasterCount : input . DedicatedMasterCount } ) , ... ( input . DedicatedMasterEnabled !== undefined && input . DedicatedMasterEnabled !== null && { DedicatedMasterEnabled : input . DedicatedMasterEnabled } ) , ... ( input . DedicatedMasterType !== undefined && input . DedicatedMasterType !== null && { DedicatedMasterType : input . DedicatedMasterType } ) , ... ( input . InstanceCount !== undefined && input . InstanceCount !== null && { InstanceCount : input . InstanceCount } ) , ... ( input . InstanceType !== undefined && input . InstanceType !== null && { InstanceType : input . InstanceType } ) , ... ( input . ZoneAwarenessConfig !== undefined && input . ZoneAwarenessConfig !== null && { ZoneAwarenessConfig : serializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails ( input . ZoneAwarenessConfig , context ) , } ) , ... ( input . ZoneAwarenessEnabled !== undefined && input . ZoneAwarenessEnabled !== null && { ZoneAwarenessEnabled : input . ZoneAwarenessEnabled } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails = ( input , context ) : any => { return { ... ( input . AvailabilityZoneCount !== undefined && input . AvailabilityZoneCount !== null && { AvailabilityZoneCount : input . AvailabilityZoneCount } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainEncryptionAtRestOptions = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptions = ( input , context ) : any => { return { ... ( input . AuditLogs !== undefined && input . AuditLogs !== null && { AuditLogs : serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( input . AuditLogs , context ) , } ) , ... ( input . IndexSlowLogs !== undefined && input . IndexSlowLogs !== null && { IndexSlowLogs : serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( input . IndexSlowLogs , context ) , } ) , ... ( input . SearchSlowLogs !== undefined && input . SearchSlowLogs !== null && { SearchSlowLogs : serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( input . SearchSlowLogs , context ) , } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig = ( input , context ) : any => { return { ... ( input . CloudWatchLogsLogGroupArn !== undefined && input . CloudWatchLogsLogGroupArn !== null && { CloudWatchLogsLogGroupArn : input . CloudWatchLogsLogGroupArn } ) , ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainNodeToNodeEncryptionOptions = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainServiceSoftwareOptions = ( input , context ) : any => { return { ... ( input . AutomatedUpdateDate !== undefined && input . AutomatedUpdateDate !== null && { AutomatedUpdateDate : input . AutomatedUpdateDate } ) , ... ( input . Cancellable !== undefined && input . Cancellable !== null && { Cancellable : input . Cancellable } ) , ... ( input . CurrentVersion !== undefined && input . CurrentVersion !== null && { CurrentVersion : input . CurrentVersion } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . NewVersion !== undefined && input . NewVersion !== null && { NewVersion : input . NewVersion } ) , ... ( input . UpdateAvailable !== undefined && input . UpdateAvailable !== null && { UpdateAvailable : input . UpdateAvailable } ) , ... ( input . UpdateStatus !== undefined && input . UpdateStatus !== null && { UpdateStatus : input . UpdateStatus } ) , } ; } ; const serializeAws_restJson1AwsElasticsearchDomainVPCOptions = ( input , context ) : any => { return { ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1NonEmptyStringList ( input . AvailabilityZones , context ) , } ) , ... ( input . SecurityGroupIds !== undefined && input . SecurityGroupIds !== null && { SecurityGroupIds : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroupIds , context ) , } ) , ... ( input . SubnetIds !== undefined && input . SubnetIds !== null && { SubnetIds : serializeAws_restJson1NonEmptyStringList ( input . SubnetIds , context ) } ) , ... ( input . VPCId !== undefined && input . VPCId !== null && { VPCId : input . VPCId } ) , } ; } ; const serializeAws_restJson1AwsElbAppCookieStickinessPolicies = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbAppCookieStickinessPolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbAppCookieStickinessPolicy = ( input , context ) : any => { return { ... ( input . CookieName !== undefined && input . CookieName !== null && { CookieName : input . CookieName } ) , ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsElbLbCookieStickinessPolicies = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbLbCookieStickinessPolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbLbCookieStickinessPolicy = ( input , context ) : any => { return { ... ( input . CookieExpirationPeriod !== undefined && input . CookieExpirationPeriod !== null && { CookieExpirationPeriod : input . CookieExpirationPeriod } ) , ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerAccessLog = ( input , context ) : any => { return { ... ( input . EmitInterval !== undefined && input . EmitInterval !== null && { EmitInterval : input . EmitInterval } ) , ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . S3BucketName !== undefined && input . S3BucketName !== null && { S3BucketName : input . S3BucketName } ) , ... ( input . S3BucketPrefix !== undefined && input . S3BucketPrefix !== null && { S3BucketPrefix : input . S3BucketPrefix } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerAttributes = ( input , context ) : any => { return { ... ( input . AccessLog !== undefined && input . AccessLog !== null && { AccessLog : serializeAws_restJson1AwsElbLoadBalancerAccessLog ( input . AccessLog , context ) , } ) , ... ( input . ConnectionDraining !== undefined && input . ConnectionDraining !== null && { ConnectionDraining : serializeAws_restJson1AwsElbLoadBalancerConnectionDraining ( input . ConnectionDraining , context ) , } ) , ... ( input . ConnectionSettings !== undefined && input . ConnectionSettings !== null && { ConnectionSettings : serializeAws_restJson1AwsElbLoadBalancerConnectionSettings ( input . ConnectionSettings , context ) , } ) , ... ( input . CrossZoneLoadBalancing !== undefined && input . CrossZoneLoadBalancing !== null && { CrossZoneLoadBalancing : serializeAws_restJson1AwsElbLoadBalancerCrossZoneLoadBalancing ( input . CrossZoneLoadBalancing , context ) , } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerBackendServerDescription = ( input , context ) : any => { return { ... ( input . InstancePort !== undefined && input . InstancePort !== null && { InstancePort : input . InstancePort } ) , ... ( input . PolicyNames !== undefined && input . PolicyNames !== null && { PolicyNames : serializeAws_restJson1StringList ( input . PolicyNames , context ) } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerBackendServerDescriptions = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbLoadBalancerBackendServerDescription ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbLoadBalancerConnectionDraining = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . Timeout !== undefined && input . Timeout !== null && { Timeout : input . Timeout } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerConnectionSettings = ( input , context ) : any => { return { ... ( input . IdleTimeout !== undefined && input . IdleTimeout !== null && { IdleTimeout : input . IdleTimeout } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerCrossZoneLoadBalancing = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerDetails = ( input , context ) : any => { return { ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1StringList ( input . AvailabilityZones , context ) , } ) , ... ( input . BackendServerDescriptions !== undefined && input . BackendServerDescriptions !== null && { BackendServerDescriptions : serializeAws_restJson1AwsElbLoadBalancerBackendServerDescriptions ( input . BackendServerDescriptions , context ) , } ) , ... ( input . CanonicalHostedZoneName !== undefined && input . CanonicalHostedZoneName !== null && { CanonicalHostedZoneName : input . CanonicalHostedZoneName } ) , ... ( input . CanonicalHostedZoneNameID !== undefined && input . CanonicalHostedZoneNameID !== null && { CanonicalHostedZoneNameID : input . CanonicalHostedZoneNameID } ) , ... ( input . CreatedTime !== undefined && input . CreatedTime !== null && { CreatedTime : input . CreatedTime } ) , ... ( input . DnsName !== undefined && input . DnsName !== null && { DnsName : input . DnsName } ) , ... ( input . HealthCheck !== undefined && input . HealthCheck !== null && { HealthCheck : serializeAws_restJson1AwsElbLoadBalancerHealthCheck ( input . HealthCheck , context ) , } ) , ... ( input . Instances !== undefined && input . Instances !== null && { Instances : serializeAws_restJson1AwsElbLoadBalancerInstances ( input . Instances , context ) , } ) , ... ( input . ListenerDescriptions !== undefined && input . ListenerDescriptions !== null && { ListenerDescriptions : serializeAws_restJson1AwsElbLoadBalancerListenerDescriptions ( input . ListenerDescriptions , context ) , } ) , ... ( input . LoadBalancerAttributes !== undefined && input . LoadBalancerAttributes !== null && { LoadBalancerAttributes : serializeAws_restJson1AwsElbLoadBalancerAttributes ( input . LoadBalancerAttributes , context ) , } ) , ... ( input . LoadBalancerName !== undefined && input . LoadBalancerName !== null && { LoadBalancerName : input . LoadBalancerName } ) , ... ( input . Policies !== undefined && input . Policies !== null && { Policies : serializeAws_restJson1AwsElbLoadBalancerPolicies ( input . Policies , context ) , } ) , ... ( input . Scheme !== undefined && input . Scheme !== null && { Scheme : input . Scheme } ) , ... ( input . SecurityGroups !== undefined && input . SecurityGroups !== null && { SecurityGroups : serializeAws_restJson1StringList ( input . SecurityGroups , context ) , } ) , ... ( input . SourceSecurityGroup !== undefined && input . SourceSecurityGroup !== null && { SourceSecurityGroup : serializeAws_restJson1AwsElbLoadBalancerSourceSecurityGroup ( input . SourceSecurityGroup , context ) , } ) , ... ( input . Subnets !== undefined && input . Subnets !== null && { Subnets : serializeAws_restJson1StringList ( input . Subnets , context ) } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerHealthCheck = ( input , context ) : any => { return { ... ( input . HealthyThreshold !== undefined && input . HealthyThreshold !== null && { HealthyThreshold : input . HealthyThreshold } ) , ... ( input . Interval !== undefined && input . Interval !== null && { Interval : input . Interval } ) , ... ( input . Target !== undefined && input . Target !== null && { Target : input . Target } ) , ... ( input . Timeout !== undefined && input . Timeout !== null && { Timeout : input . Timeout } ) , ... ( input . UnhealthyThreshold !== undefined && input . UnhealthyThreshold !== null && { UnhealthyThreshold : input . UnhealthyThreshold } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerInstance = ( input , context ) : any => { return { ... ( input . InstanceId !== undefined && input . InstanceId !== null && { InstanceId : input . InstanceId } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerInstances = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbLoadBalancerInstance ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbLoadBalancerListener = ( input , context ) : any => { return { ... ( input . InstancePort !== undefined && input . InstancePort !== null && { InstancePort : input . InstancePort } ) , ... ( input . InstanceProtocol !== undefined && input . InstanceProtocol !== null && { InstanceProtocol : input . InstanceProtocol } ) , ... ( input . LoadBalancerPort !== undefined && input . LoadBalancerPort !== null && { LoadBalancerPort : input . LoadBalancerPort } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . SslCertificateId !== undefined && input . SslCertificateId !== null && { SslCertificateId : input . SslCertificateId } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerListenerDescription = ( input , context ) : any => { return { ... ( input . Listener !== undefined && input . Listener !== null && { Listener : serializeAws_restJson1AwsElbLoadBalancerListener ( input . Listener , context ) , } ) , ... ( input . PolicyNames !== undefined && input . PolicyNames !== null && { PolicyNames : serializeAws_restJson1StringList ( input . PolicyNames , context ) } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerListenerDescriptions = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbLoadBalancerListenerDescription ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbLoadBalancerPolicies = ( input , context ) : any => { return { ... ( input . AppCookieStickinessPolicies !== undefined && input . AppCookieStickinessPolicies !== null && { AppCookieStickinessPolicies : serializeAws_restJson1AwsElbAppCookieStickinessPolicies ( input . AppCookieStickinessPolicies , context ) , } ) , ... ( input . LbCookieStickinessPolicies !== undefined && input . LbCookieStickinessPolicies !== null && { LbCookieStickinessPolicies : serializeAws_restJson1AwsElbLbCookieStickinessPolicies ( input . LbCookieStickinessPolicies , context ) , } ) , ... ( input . OtherPolicies !== undefined && input . OtherPolicies !== null && { OtherPolicies : serializeAws_restJson1StringList ( input . OtherPolicies , context ) , } ) , } ; } ; const serializeAws_restJson1AwsElbLoadBalancerSourceSecurityGroup = ( input , context ) : any => { return { ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , ... ( input . OwnerAlias !== undefined && input . OwnerAlias !== null && { OwnerAlias : input . OwnerAlias } ) , } ; } ; const serializeAws_restJson1AwsElbv2LoadBalancerAttribute = ( input , context ) : any => { return { ... ( input . Key !== undefined && input . Key !== null && { Key : input . Key } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsElbv2LoadBalancerAttributes = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsElbv2LoadBalancerAttribute ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsElbv2LoadBalancerDetails = ( input , context ) : any => { return { ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1AvailabilityZones ( input . AvailabilityZones , context ) , } ) , ... ( input . CanonicalHostedZoneId !== undefined && input . CanonicalHostedZoneId !== null && { CanonicalHostedZoneId : input . CanonicalHostedZoneId } ) , ... ( input . CreatedTime !== undefined && input . CreatedTime !== null && { CreatedTime : input . CreatedTime } ) , ... ( input . DNSName !== undefined && input . DNSName !== null && { DNSName : input . DNSName } ) , ... ( input . IpAddressType !== undefined && input . IpAddressType !== null && { IpAddressType : input . IpAddressType } ) , ... ( input . LoadBalancerAttributes !== undefined && input . LoadBalancerAttributes !== null && { LoadBalancerAttributes : serializeAws_restJson1AwsElbv2LoadBalancerAttributes ( input . LoadBalancerAttributes , context ) , } ) , ... ( input . Scheme !== undefined && input . Scheme !== null && { Scheme : input . Scheme } ) , ... ( input . SecurityGroups !== undefined && input . SecurityGroups !== null && { SecurityGroups : serializeAws_restJson1SecurityGroups ( input . SecurityGroups , context ) , } ) , ... ( input . State !== undefined && input . State !== null && { State : serializeAws_restJson1LoadBalancerState ( input . State , context ) } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsIamAccessKeyDetails = ( input , context ) : any => { return { ... ( input . AccessKeyId !== undefined && input . AccessKeyId !== null && { AccessKeyId : input . AccessKeyId } ) , ... ( input . AccountId !== undefined && input . AccountId !== null && { AccountId : input . AccountId } ) , ... ( input . CreatedAt !== undefined && input . CreatedAt !== null && { CreatedAt : input . CreatedAt } ) , ... ( input . PrincipalId !== undefined && input . PrincipalId !== null && { PrincipalId : input . PrincipalId } ) , ... ( input . PrincipalName !== undefined && input . PrincipalName !== null && { PrincipalName : input . PrincipalName } ) , ... ( input . PrincipalType !== undefined && input . PrincipalType !== null && { PrincipalType : input . PrincipalType } ) , ... ( input . SessionContext !== undefined && input . SessionContext !== null && { SessionContext : serializeAws_restJson1AwsIamAccessKeySessionContext ( input . SessionContext , context ) , } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . UserName !== undefined && input . UserName !== null && { UserName : input . UserName } ) , } ; } ; const serializeAws_restJson1AwsIamAccessKeySessionContext = ( input , context ) : any => { return { ... ( input . Attributes !== undefined && input . Attributes !== null && { Attributes : serializeAws_restJson1AwsIamAccessKeySessionContextAttributes ( input . Attributes , context ) , } ) , ... ( input . SessionIssuer !== undefined && input . SessionIssuer !== null && { SessionIssuer : serializeAws_restJson1AwsIamAccessKeySessionContextSessionIssuer ( input . SessionIssuer , context ) , } ) , } ; } ; const serializeAws_restJson1AwsIamAccessKeySessionContextAttributes = ( input , context ) : any => { return { ... ( input . CreationDate !== undefined && input . CreationDate !== null && { CreationDate : input . CreationDate } ) , ... ( input . MfaAuthenticated !== undefined && input . MfaAuthenticated !== null && { MfaAuthenticated : input . MfaAuthenticated } ) , } ; } ; const serializeAws_restJson1AwsIamAccessKeySessionContextSessionIssuer = ( input , context ) : any => { return { ... ( input . AccountId !== undefined && input . AccountId !== null && { AccountId : input . AccountId } ) , ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . PrincipalId !== undefined && input . PrincipalId !== null && { PrincipalId : input . PrincipalId } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . UserName !== undefined && input . UserName !== null && { UserName : input . UserName } ) , } ; } ; const serializeAws_restJson1AwsIamAttachedManagedPolicy = ( input , context ) : any => { return { ... ( input . PolicyArn !== undefined && input . PolicyArn !== null && { PolicyArn : input . PolicyArn } ) , ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsIamAttachedManagedPolicyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamAttachedManagedPolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamGroupDetails = ( input , context ) : any => { return { ... ( input . AttachedManagedPolicies !== undefined && input . AttachedManagedPolicies !== null && { AttachedManagedPolicies : serializeAws_restJson1AwsIamAttachedManagedPolicyList ( input . AttachedManagedPolicies , context ) , } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . GroupId !== undefined && input . GroupId !== null && { GroupId : input . GroupId } ) , ... ( input . GroupName !== undefined && input . GroupName !== null && { GroupName : input . GroupName } ) , ... ( input . GroupPolicyList !== undefined && input . GroupPolicyList !== null && { GroupPolicyList : serializeAws_restJson1AwsIamGroupPolicyList ( input . GroupPolicyList , context ) , } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , } ; } ; const serializeAws_restJson1AwsIamGroupPolicy = ( input , context ) : any => { return { ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsIamGroupPolicyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamGroupPolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamInstanceProfile = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . InstanceProfileId !== undefined && input . InstanceProfileId !== null && { InstanceProfileId : input . InstanceProfileId } ) , ... ( input . InstanceProfileName !== undefined && input . InstanceProfileName !== null && { InstanceProfileName : input . InstanceProfileName } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . Roles !== undefined && input . Roles !== null && { Roles : serializeAws_restJson1AwsIamInstanceProfileRoles ( input . Roles , context ) } ) , } ; } ; const serializeAws_restJson1AwsIamInstanceProfileList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamInstanceProfile ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamInstanceProfileRole = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . AssumeRolePolicyDocument !== undefined && input . AssumeRolePolicyDocument !== null && { AssumeRolePolicyDocument : input . AssumeRolePolicyDocument } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . RoleId !== undefined && input . RoleId !== null && { RoleId : input . RoleId } ) , ... ( input . RoleName !== undefined && input . RoleName !== null && { RoleName : input . RoleName } ) , } ; } ; const serializeAws_restJson1AwsIamInstanceProfileRoles = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamInstanceProfileRole ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamPermissionsBoundary = ( input , context ) : any => { return { ... ( input . PermissionsBoundaryArn !== undefined && input . PermissionsBoundaryArn !== null && { PermissionsBoundaryArn : input . PermissionsBoundaryArn } ) , ... ( input . PermissionsBoundaryType !== undefined && input . PermissionsBoundaryType !== null && { PermissionsBoundaryType : input . PermissionsBoundaryType } ) , } ; } ; const serializeAws_restJson1AwsIamPolicyDetails = ( input , context ) : any => { return { ... ( input . AttachmentCount !== undefined && input . AttachmentCount !== null && { AttachmentCount : input . AttachmentCount } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . DefaultVersionId !== undefined && input . DefaultVersionId !== null && { DefaultVersionId : input . DefaultVersionId } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . IsAttachable !== undefined && input . IsAttachable !== null && { IsAttachable : input . IsAttachable } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . PermissionsBoundaryUsageCount !== undefined && input . PermissionsBoundaryUsageCount !== null && { PermissionsBoundaryUsageCount : input . PermissionsBoundaryUsageCount , } ) , ... ( input . PolicyId !== undefined && input . PolicyId !== null && { PolicyId : input . PolicyId } ) , ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , ... ( input . PolicyVersionList !== undefined && input . PolicyVersionList !== null && { PolicyVersionList : serializeAws_restJson1AwsIamPolicyVersionList ( input . PolicyVersionList , context ) , } ) , ... ( input . UpdateDate !== undefined && input . UpdateDate !== null && { UpdateDate : input . UpdateDate } ) , } ; } ; const serializeAws_restJson1AwsIamPolicyVersion = ( input , context ) : any => { return { ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . IsDefaultVersion !== undefined && input . IsDefaultVersion !== null && { IsDefaultVersion : input . IsDefaultVersion } ) , ... ( input . VersionId !== undefined && input . VersionId !== null && { VersionId : input . VersionId } ) , } ; } ; const serializeAws_restJson1AwsIamPolicyVersionList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamPolicyVersion ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamRoleDetails = ( input , context ) : any => { return { ... ( input . AssumeRolePolicyDocument !== undefined && input . AssumeRolePolicyDocument !== null && { AssumeRolePolicyDocument : input . AssumeRolePolicyDocument } ) , ... ( input . AttachedManagedPolicies !== undefined && input . AttachedManagedPolicies !== null && { AttachedManagedPolicies : serializeAws_restJson1AwsIamAttachedManagedPolicyList ( input . AttachedManagedPolicies , context ) , } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . InstanceProfileList !== undefined && input . InstanceProfileList !== null && { InstanceProfileList : serializeAws_restJson1AwsIamInstanceProfileList ( input . InstanceProfileList , context ) , } ) , ... ( input . MaxSessionDuration !== undefined && input . MaxSessionDuration !== null && { MaxSessionDuration : input . MaxSessionDuration } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . PermissionsBoundary !== undefined && input . PermissionsBoundary !== null && { PermissionsBoundary : serializeAws_restJson1AwsIamPermissionsBoundary ( input . PermissionsBoundary , context ) , } ) , ... ( input . RoleId !== undefined && input . RoleId !== null && { RoleId : input . RoleId } ) , ... ( input . RoleName !== undefined && input . RoleName !== null && { RoleName : input . RoleName } ) , ... ( input . RolePolicyList !== undefined && input . RolePolicyList !== null && { RolePolicyList : serializeAws_restJson1AwsIamRolePolicyList ( input . RolePolicyList , context ) , } ) , } ; } ; const serializeAws_restJson1AwsIamRolePolicy = ( input , context ) : any => { return { ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsIamRolePolicyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamRolePolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsIamUserDetails = ( input , context ) : any => { return { ... ( input . AttachedManagedPolicies !== undefined && input . AttachedManagedPolicies !== null && { AttachedManagedPolicies : serializeAws_restJson1AwsIamAttachedManagedPolicyList ( input . AttachedManagedPolicies , context ) , } ) , ... ( input . CreateDate !== undefined && input . CreateDate !== null && { CreateDate : input . CreateDate } ) , ... ( input . GroupList !== undefined && input . GroupList !== null && { GroupList : serializeAws_restJson1StringList ( input . GroupList , context ) } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . PermissionsBoundary !== undefined && input . PermissionsBoundary !== null && { PermissionsBoundary : serializeAws_restJson1AwsIamPermissionsBoundary ( input . PermissionsBoundary , context ) , } ) , ... ( input . UserId !== undefined && input . UserId !== null && { UserId : input . UserId } ) , ... ( input . UserName !== undefined && input . UserName !== null && { UserName : input . UserName } ) , ... ( input . UserPolicyList !== undefined && input . UserPolicyList !== null && { UserPolicyList : serializeAws_restJson1AwsIamUserPolicyList ( input . UserPolicyList , context ) , } ) , } ; } ; const serializeAws_restJson1AwsIamUserPolicy = ( input , context ) : any => { return { ... ( input . PolicyName !== undefined && input . PolicyName !== null && { PolicyName : input . PolicyName } ) , } ; } ; const serializeAws_restJson1AwsIamUserPolicyList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsIamUserPolicy ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsKmsKeyDetails = ( input , context ) : any => { return { ... ( input . AWSAccountId !== undefined && input . AWSAccountId !== null && { AWSAccountId : input . AWSAccountId } ) , ... ( input . CreationDate !== undefined && input . CreationDate !== null && { CreationDate : __serializeFloat ( input . CreationDate ) } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . KeyId !== undefined && input . KeyId !== null && { KeyId : input . KeyId } ) , ... ( input . KeyManager !== undefined && input . KeyManager !== null && { KeyManager : input . KeyManager } ) , ... ( input . KeyRotationStatus !== undefined && input . KeyRotationStatus !== null && { KeyRotationStatus : input . KeyRotationStatus } ) , ... ( input . KeyState !== undefined && input . KeyState !== null && { KeyState : input . KeyState } ) , ... ( input . Origin !== undefined && input . Origin !== null && { Origin : input . Origin } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionCode = ( input , context ) : any => { return { ... ( input . S3Bucket !== undefined && input . S3Bucket !== null && { S3Bucket : input . S3Bucket } ) , ... ( input . S3Key !== undefined && input . S3Key !== null && { S3Key : input . S3Key } ) , ... ( input . S3ObjectVersion !== undefined && input . S3ObjectVersion !== null && { S3ObjectVersion : input . S3ObjectVersion } ) , ... ( input . ZipFile !== undefined && input . ZipFile !== null && { ZipFile : input . ZipFile } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionDeadLetterConfig = ( input , context ) : any => { return { ... ( input . TargetArn !== undefined && input . TargetArn !== null && { TargetArn : input . TargetArn } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionDetails = ( input , context ) : any => { return { ... ( input . Code !== undefined && input . Code !== null && { Code : serializeAws_restJson1AwsLambdaFunctionCode ( input . Code , context ) } ) , ... ( input . CodeSha256 !== undefined && input . CodeSha256 !== null && { CodeSha256 : input . CodeSha256 } ) , ... ( input . DeadLetterConfig !== undefined && input . DeadLetterConfig !== null && { DeadLetterConfig : serializeAws_restJson1AwsLambdaFunctionDeadLetterConfig ( input . DeadLetterConfig , context ) , } ) , ... ( input . Environment !== undefined && input . Environment !== null && { Environment : serializeAws_restJson1AwsLambdaFunctionEnvironment ( input . Environment , context ) , } ) , ... ( input . FunctionName !== undefined && input . FunctionName !== null && { FunctionName : input . FunctionName } ) , ... ( input . Handler !== undefined && input . Handler !== null && { Handler : input . Handler } ) , ... ( input . KmsKeyArn !== undefined && input . KmsKeyArn !== null && { KmsKeyArn : input . KmsKeyArn } ) , ... ( input . LastModified !== undefined && input . LastModified !== null && { LastModified : input . LastModified } ) , ... ( input . Layers !== undefined && input . Layers !== null && { Layers : serializeAws_restJson1AwsLambdaFunctionLayerList ( input . Layers , context ) } ) , ... ( input . MasterArn !== undefined && input . MasterArn !== null && { MasterArn : input . MasterArn } ) , ... ( input . MemorySize !== undefined && input . MemorySize !== null && { MemorySize : input . MemorySize } ) , ... ( input . RevisionId !== undefined && input . RevisionId !== null && { RevisionId : input . RevisionId } ) , ... ( input . Role !== undefined && input . Role !== null && { Role : input . Role } ) , ... ( input . Runtime !== undefined && input . Runtime !== null && { Runtime : input . Runtime } ) , ... ( input . Timeout !== undefined && input . Timeout !== null && { Timeout : input . Timeout } ) , ... ( input . TracingConfig !== undefined && input . TracingConfig !== null && { TracingConfig : serializeAws_restJson1AwsLambdaFunctionTracingConfig ( input . TracingConfig , context ) , } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , ... ( input . VpcConfig !== undefined && input . VpcConfig !== null && { VpcConfig : serializeAws_restJson1AwsLambdaFunctionVpcConfig ( input . VpcConfig , context ) , } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionEnvironment = ( input , context ) : any => { return { ... ( input . Error !== undefined && input . Error !== null && { Error : serializeAws_restJson1AwsLambdaFunctionEnvironmentError ( input . Error , context ) } ) , ... ( input . Variables !== undefined && input . Variables !== null && { Variables : serializeAws_restJson1FieldMap ( input . Variables , context ) } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionEnvironmentError = ( input , context ) : any => { return { ... ( input . ErrorCode !== undefined && input . ErrorCode !== null && { ErrorCode : input . ErrorCode } ) , ... ( input . Message !== undefined && input . Message !== null && { Message : input . Message } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionLayer = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . CodeSize !== undefined && input . CodeSize !== null && { CodeSize : input . CodeSize } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionLayerList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsLambdaFunctionLayer ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsLambdaFunctionTracingConfig = ( input , context ) : any => { return { ... ( input . Mode !== undefined && input . Mode !== null && { Mode : input . Mode } ) , } ; } ; const serializeAws_restJson1AwsLambdaFunctionVpcConfig = ( input , context ) : any => { return { ... ( input . SecurityGroupIds !== undefined && input . SecurityGroupIds !== null && { SecurityGroupIds : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroupIds , context ) , } ) , ... ( input . SubnetIds !== undefined && input . SubnetIds !== null && { SubnetIds : serializeAws_restJson1NonEmptyStringList ( input . SubnetIds , context ) } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsLambdaLayerVersionDetails = ( input , context ) : any => { return { ... ( input . CompatibleRuntimes !== undefined && input . CompatibleRuntimes !== null && { CompatibleRuntimes : serializeAws_restJson1NonEmptyStringList ( input . CompatibleRuntimes , context ) , } ) , ... ( input . CreatedDate !== undefined && input . CreatedDate !== null && { CreatedDate : input . CreatedDate } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1AwsNetworkFirewallFirewallDetails = ( input , context ) : any => { return { ... ( input . DeleteProtection !== undefined && input . DeleteProtection !== null && { DeleteProtection : input . DeleteProtection } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . FirewallArn !== undefined && input . FirewallArn !== null && { FirewallArn : input . FirewallArn } ) , ... ( input . FirewallId !== undefined && input . FirewallId !== null && { FirewallId : input . FirewallId } ) , ... ( input . FirewallName !== undefined && input . FirewallName !== null && { FirewallName : input . FirewallName } ) , ... ( input . FirewallPolicyArn !== undefined && input . FirewallPolicyArn !== null && { FirewallPolicyArn : input . FirewallPolicyArn } ) , ... ( input . FirewallPolicyChangeProtection !== undefined && input . FirewallPolicyChangeProtection !== null && { FirewallPolicyChangeProtection : input . FirewallPolicyChangeProtection , } ) , ... ( input . SubnetChangeProtection !== undefined && input . SubnetChangeProtection !== null && { SubnetChangeProtection : input . SubnetChangeProtection } ) , ... ( input . SubnetMappings !== undefined && input . SubnetMappings !== null && { SubnetMappings : serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList ( input . SubnetMappings , context ) , } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails = ( input , context ) : any => { return { ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . FirewallPolicy !== undefined && input . FirewallPolicy !== null && { FirewallPolicy : serializeAws_restJson1FirewallPolicyDetails ( input . FirewallPolicy , context ) , } ) , ... ( input . FirewallPolicyArn !== undefined && input . FirewallPolicyArn !== null && { FirewallPolicyArn : input . FirewallPolicyArn } ) , ... ( input . FirewallPolicyId !== undefined && input . FirewallPolicyId !== null && { FirewallPolicyId : input . FirewallPolicyId } ) , ... ( input . FirewallPolicyName !== undefined && input . FirewallPolicyName !== null && { FirewallPolicyName : input . FirewallPolicyName } ) , } ; } ; const serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails = ( input , context ) : any => { return { ... ( input . SubnetId !== undefined && input . SubnetId !== null && { SubnetId : input . SubnetId } ) , } ; } ; const serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsNetworkFirewallRuleGroupDetails = ( input , context ) : any => { return { ... ( input . Capacity !== undefined && input . Capacity !== null && { Capacity : input . Capacity } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . RuleGroup !== undefined && input . RuleGroup !== null && { RuleGroup : serializeAws_restJson1RuleGroupDetails ( input . RuleGroup , context ) } ) , ... ( input . RuleGroupArn !== undefined && input . RuleGroupArn !== null && { RuleGroupArn : input . RuleGroupArn } ) , ... ( input . RuleGroupId !== undefined && input . RuleGroupId !== null && { RuleGroupId : input . RuleGroupId } ) , ... ( input . RuleGroupName !== undefined && input . RuleGroupName !== null && { RuleGroupName : input . RuleGroupName } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigDetails = ( input , context ) : any => { return { ... ( input . DedicatedMasterCount !== undefined && input . DedicatedMasterCount !== null && { DedicatedMasterCount : input . DedicatedMasterCount } ) , ... ( input . DedicatedMasterEnabled !== undefined && input . DedicatedMasterEnabled !== null && { DedicatedMasterEnabled : input . DedicatedMasterEnabled } ) , ... ( input . DedicatedMasterType !== undefined && input . DedicatedMasterType !== null && { DedicatedMasterType : input . DedicatedMasterType } ) , ... ( input . InstanceCount !== undefined && input . InstanceCount !== null && { InstanceCount : input . InstanceCount } ) , ... ( input . InstanceType !== undefined && input . InstanceType !== null && { InstanceType : input . InstanceType } ) , ... ( input . WarmCount !== undefined && input . WarmCount !== null && { WarmCount : input . WarmCount } ) , ... ( input . WarmEnabled !== undefined && input . WarmEnabled !== null && { WarmEnabled : input . WarmEnabled } ) , ... ( input . WarmType !== undefined && input . WarmType !== null && { WarmType : input . WarmType } ) , ... ( input . ZoneAwarenessConfig !== undefined && input . ZoneAwarenessConfig !== null && { ZoneAwarenessConfig : serializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails ( input . ZoneAwarenessConfig , context ) , } ) , ... ( input . ZoneAwarenessEnabled !== undefined && input . ZoneAwarenessEnabled !== null && { ZoneAwarenessEnabled : input . ZoneAwarenessEnabled } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails = ( input , context ) : any => { return { ... ( input . AvailabilityZoneCount !== undefined && input . AvailabilityZoneCount !== null && { AvailabilityZoneCount : input . AvailabilityZoneCount } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainDetails = ( input , context ) : any => { return { ... ( input . AccessPolicies !== undefined && input . AccessPolicies !== null && { AccessPolicies : input . AccessPolicies } ) , ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . ClusterConfig !== undefined && input . ClusterConfig !== null && { ClusterConfig : serializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigDetails ( input . ClusterConfig , context ) , } ) , ... ( input . DomainEndpoint !== undefined && input . DomainEndpoint !== null && { DomainEndpoint : input . DomainEndpoint } ) , ... ( input . DomainEndpointOptions !== undefined && input . DomainEndpointOptions !== null && { DomainEndpointOptions : serializeAws_restJson1AwsOpenSearchServiceDomainDomainEndpointOptionsDetails ( input . DomainEndpointOptions , context ) , } ) , ... ( input . DomainEndpoints !== undefined && input . DomainEndpoints !== null && { DomainEndpoints : serializeAws_restJson1FieldMap ( input . DomainEndpoints , context ) , } ) , ... ( input . DomainName !== undefined && input . DomainName !== null && { DomainName : input . DomainName } ) , ... ( input . EncryptionAtRestOptions !== undefined && input . EncryptionAtRestOptions !== null && { EncryptionAtRestOptions : serializeAws_restJson1AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails ( input . EncryptionAtRestOptions , context ) , } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . LogPublishingOptions !== undefined && input . LogPublishingOptions !== null && { LogPublishingOptions : serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOptionsDetails ( input . LogPublishingOptions , context ) , } ) , ... ( input . NodeToNodeEncryptionOptions !== undefined && input . NodeToNodeEncryptionOptions !== null && { NodeToNodeEncryptionOptions : serializeAws_restJson1AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails ( input . NodeToNodeEncryptionOptions , context ) , } ) , ... ( input . ServiceSoftwareOptions !== undefined && input . ServiceSoftwareOptions !== null && { ServiceSoftwareOptions : serializeAws_restJson1AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails ( input . ServiceSoftwareOptions , context ) , } ) , ... ( input . VpcOptions !== undefined && input . VpcOptions !== null && { VpcOptions : serializeAws_restJson1AwsOpenSearchServiceDomainVpcOptionsDetails ( input . VpcOptions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainDomainEndpointOptionsDetails = ( input , context ) : any => { return { ... ( input . CustomEndpoint !== undefined && input . CustomEndpoint !== null && { CustomEndpoint : input . CustomEndpoint } ) , ... ( input . CustomEndpointCertificateArn !== undefined && input . CustomEndpointCertificateArn !== null && { CustomEndpointCertificateArn : input . CustomEndpointCertificateArn , } ) , ... ( input . CustomEndpointEnabled !== undefined && input . CustomEndpointEnabled !== null && { CustomEndpointEnabled : input . CustomEndpointEnabled } ) , ... ( input . EnforceHTTPS !== undefined && input . EnforceHTTPS !== null && { EnforceHTTPS : input . EnforceHTTPS } ) , ... ( input . TLSSecurityPolicy !== undefined && input . TLSSecurityPolicy !== null && { TLSSecurityPolicy : input . TLSSecurityPolicy } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption = ( input , context ) : any => { return { ... ( input . CloudWatchLogsLogGroupArn !== undefined && input . CloudWatchLogsLogGroupArn !== null && { CloudWatchLogsLogGroupArn : input . CloudWatchLogsLogGroupArn } ) , ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOptionsDetails = ( input , context ) : any => { return { ... ( input . AuditLogs !== undefined && input . AuditLogs !== null && { AuditLogs : serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( input . AuditLogs , context ) , } ) , ... ( input . IndexSlowLogs !== undefined && input . IndexSlowLogs !== null && { IndexSlowLogs : serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( input . IndexSlowLogs , context ) , } ) , ... ( input . SearchSlowLogs !== undefined && input . SearchSlowLogs !== null && { SearchSlowLogs : serializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( input . SearchSlowLogs , context ) , } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails = ( input , context ) : any => { return { ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails = ( input , context ) : any => { return { ... ( input . AutomatedUpdateDate !== undefined && input . AutomatedUpdateDate !== null && { AutomatedUpdateDate : input . AutomatedUpdateDate } ) , ... ( input . Cancellable !== undefined && input . Cancellable !== null && { Cancellable : input . Cancellable } ) , ... ( input . CurrentVersion !== undefined && input . CurrentVersion !== null && { CurrentVersion : input . CurrentVersion } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . NewVersion !== undefined && input . NewVersion !== null && { NewVersion : input . NewVersion } ) , ... ( input . OptionalDeployment !== undefined && input . OptionalDeployment !== null && { OptionalDeployment : input . OptionalDeployment } ) , ... ( input . UpdateAvailable !== undefined && input . UpdateAvailable !== null && { UpdateAvailable : input . UpdateAvailable } ) , ... ( input . UpdateStatus !== undefined && input . UpdateStatus !== null && { UpdateStatus : input . UpdateStatus } ) , } ; } ; const serializeAws_restJson1AwsOpenSearchServiceDomainVpcOptionsDetails = ( input , context ) : any => { return { ... ( input . SecurityGroupIds !== undefined && input . SecurityGroupIds !== null && { SecurityGroupIds : serializeAws_restJson1NonEmptyStringList ( input . SecurityGroupIds , context ) , } ) , ... ( input . SubnetIds !== undefined && input . SubnetIds !== null && { SubnetIds : serializeAws_restJson1NonEmptyStringList ( input . SubnetIds , context ) } ) , } ; } ; const serializeAws_restJson1AwsRdsDbClusterAssociatedRole = ( input , context ) : any => { return { ... ( input . RoleArn !== undefined && input . RoleArn !== null && { RoleArn : input . RoleArn } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRdsDbClusterAssociatedRoles = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbClusterAssociatedRole ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbClusterDetails = ( input , context ) : any => { return { ... ( input . ActivityStreamStatus !== undefined && input . ActivityStreamStatus !== null && { ActivityStreamStatus : input . ActivityStreamStatus } ) , ... ( input . AllocatedStorage !== undefined && input . AllocatedStorage !== null && { AllocatedStorage : input . AllocatedStorage } ) , ... ( input . AssociatedRoles !== undefined && input . AssociatedRoles !== null && { AssociatedRoles : serializeAws_restJson1AwsRdsDbClusterAssociatedRoles ( input . AssociatedRoles , context ) , } ) , ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1StringList ( input . AvailabilityZones , context ) , } ) , ... ( input . BackupRetentionPeriod !== undefined && input . BackupRetentionPeriod !== null && { BackupRetentionPeriod : input . BackupRetentionPeriod } ) , ... ( input . ClusterCreateTime !== undefined && input . ClusterCreateTime !== null && { ClusterCreateTime : input . ClusterCreateTime } ) , ... ( input . CopyTagsToSnapshot !== undefined && input . CopyTagsToSnapshot !== null && { CopyTagsToSnapshot : input . CopyTagsToSnapshot } ) , ... ( input . CrossAccountClone !== undefined && input . CrossAccountClone !== null && { CrossAccountClone : input . CrossAccountClone } ) , ... ( input . CustomEndpoints !== undefined && input . CustomEndpoints !== null && { CustomEndpoints : serializeAws_restJson1StringList ( input . CustomEndpoints , context ) , } ) , ... ( input . DatabaseName !== undefined && input . DatabaseName !== null && { DatabaseName : input . DatabaseName } ) , ... ( input . DbClusterIdentifier !== undefined && input . DbClusterIdentifier !== null && { DbClusterIdentifier : input . DbClusterIdentifier } ) , ... ( input . DbClusterMembers !== undefined && input . DbClusterMembers !== null && { DbClusterMembers : serializeAws_restJson1AwsRdsDbClusterMembers ( input . DbClusterMembers , context ) , } ) , ... ( input . DbClusterOptionGroupMemberships !== undefined && input . DbClusterOptionGroupMemberships !== null && { DbClusterOptionGroupMemberships : serializeAws_restJson1AwsRdsDbClusterOptionGroupMemberships ( input . DbClusterOptionGroupMemberships , context ) , } ) , ... ( input . DbClusterParameterGroup !== undefined && input . DbClusterParameterGroup !== null && { DbClusterParameterGroup : input . DbClusterParameterGroup } ) , ... ( input . DbClusterResourceId !== undefined && input . DbClusterResourceId !== null && { DbClusterResourceId : input . DbClusterResourceId } ) , ... ( input . DbSubnetGroup !== undefined && input . DbSubnetGroup !== null && { DbSubnetGroup : input . DbSubnetGroup } ) , ... ( input . DeletionProtection !== undefined && input . DeletionProtection !== null && { DeletionProtection : input . DeletionProtection } ) , ... ( input . DomainMemberships !== undefined && input . DomainMemberships !== null && { DomainMemberships : serializeAws_restJson1AwsRdsDbDomainMemberships ( input . DomainMemberships , context ) , } ) , ... ( input . EnabledCloudWatchLogsExports !== undefined && input . EnabledCloudWatchLogsExports !== null && { EnabledCloudWatchLogsExports : serializeAws_restJson1StringList ( input . EnabledCloudWatchLogsExports , context ) , } ) , ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : input . Endpoint } ) , ... ( input . Engine !== undefined && input . Engine !== null && { Engine : input . Engine } ) , ... ( input . EngineMode !== undefined && input . EngineMode !== null && { EngineMode : input . EngineMode } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . HostedZoneId !== undefined && input . HostedZoneId !== null && { HostedZoneId : input . HostedZoneId } ) , ... ( input . HttpEndpointEnabled !== undefined && input . HttpEndpointEnabled !== null && { HttpEndpointEnabled : input . HttpEndpointEnabled } ) , ... ( input . IamDatabaseAuthenticationEnabled !== undefined && input . IamDatabaseAuthenticationEnabled !== null && { IamDatabaseAuthenticationEnabled : input . IamDatabaseAuthenticationEnabled , } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . MasterUsername !== undefined && input . MasterUsername !== null && { MasterUsername : input . MasterUsername } ) , ... ( input . MultiAz !== undefined && input . MultiAz !== null && { MultiAz : input . MultiAz } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . PreferredBackupWindow !== undefined && input . PreferredBackupWindow !== null && { PreferredBackupWindow : input . PreferredBackupWindow } ) , ... ( input . PreferredMaintenanceWindow !== undefined && input . PreferredMaintenanceWindow !== null && { PreferredMaintenanceWindow : input . PreferredMaintenanceWindow } ) , ... ( input . ReadReplicaIdentifiers !== undefined && input . ReadReplicaIdentifiers !== null && { ReadReplicaIdentifiers : serializeAws_restJson1StringList ( input . ReadReplicaIdentifiers , context ) , } ) , ... ( input . ReaderEndpoint !== undefined && input . ReaderEndpoint !== null && { ReaderEndpoint : input . ReaderEndpoint } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StorageEncrypted !== undefined && input . StorageEncrypted !== null && { StorageEncrypted : input . StorageEncrypted } ) , ... ( input . VpcSecurityGroups !== undefined && input . VpcSecurityGroups !== null && { VpcSecurityGroups : serializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups ( input . VpcSecurityGroups , context ) , } ) , } ; } ; const serializeAws_restJson1AwsRdsDbClusterMember = ( input , context ) : any => { return { ... ( input . DbClusterParameterGroupStatus !== undefined && input . DbClusterParameterGroupStatus !== null && { DbClusterParameterGroupStatus : input . DbClusterParameterGroupStatus , } ) , ... ( input . DbInstanceIdentifier !== undefined && input . DbInstanceIdentifier !== null && { DbInstanceIdentifier : input . DbInstanceIdentifier } ) , ... ( input . IsClusterWriter !== undefined && input . IsClusterWriter !== null && { IsClusterWriter : input . IsClusterWriter } ) , ... ( input . PromotionTier !== undefined && input . PromotionTier !== null && { PromotionTier : input . PromotionTier } ) , } ; } ; const serializeAws_restJson1AwsRdsDbClusterMembers = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbClusterMember ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbClusterOptionGroupMembership = ( input , context ) : any => { return { ... ( input . DbClusterOptionGroupName !== undefined && input . DbClusterOptionGroupName !== null && { DbClusterOptionGroupName : input . DbClusterOptionGroupName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRdsDbClusterOptionGroupMemberships = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbClusterOptionGroupMembership ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbClusterSnapshotDetails = ( input , context ) : any => { return { ... ( input . AllocatedStorage !== undefined && input . AllocatedStorage !== null && { AllocatedStorage : input . AllocatedStorage } ) , ... ( input . AvailabilityZones !== undefined && input . AvailabilityZones !== null && { AvailabilityZones : serializeAws_restJson1StringList ( input . AvailabilityZones , context ) , } ) , ... ( input . ClusterCreateTime !== undefined && input . ClusterCreateTime !== null && { ClusterCreateTime : input . ClusterCreateTime } ) , ... ( input . DbClusterIdentifier !== undefined && input . DbClusterIdentifier !== null && { DbClusterIdentifier : input . DbClusterIdentifier } ) , ... ( input . DbClusterSnapshotIdentifier !== undefined && input . DbClusterSnapshotIdentifier !== null && { DbClusterSnapshotIdentifier : input . DbClusterSnapshotIdentifier } ) , ... ( input . Engine !== undefined && input . Engine !== null && { Engine : input . Engine } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . IamDatabaseAuthenticationEnabled !== undefined && input . IamDatabaseAuthenticationEnabled !== null && { IamDatabaseAuthenticationEnabled : input . IamDatabaseAuthenticationEnabled , } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . LicenseModel !== undefined && input . LicenseModel !== null && { LicenseModel : input . LicenseModel } ) , ... ( input . MasterUsername !== undefined && input . MasterUsername !== null && { MasterUsername : input . MasterUsername } ) , ... ( input . PercentProgress !== undefined && input . PercentProgress !== null && { PercentProgress : input . PercentProgress } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . SnapshotCreateTime !== undefined && input . SnapshotCreateTime !== null && { SnapshotCreateTime : input . SnapshotCreateTime } ) , ... ( input . SnapshotType !== undefined && input . SnapshotType !== null && { SnapshotType : input . SnapshotType } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StorageEncrypted !== undefined && input . StorageEncrypted !== null && { StorageEncrypted : input . StorageEncrypted } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsRdsDbDomainMembership = ( input , context ) : any => { return { ... ( input . Domain !== undefined && input . Domain !== null && { Domain : input . Domain } ) , ... ( input . Fqdn !== undefined && input . Fqdn !== null && { Fqdn : input . Fqdn } ) , ... ( input . IamRoleName !== undefined && input . IamRoleName !== null && { IamRoleName : input . IamRoleName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRdsDbDomainMemberships = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbDomainMembership ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbInstanceAssociatedRole = ( input , context ) : any => { return { ... ( input . FeatureName !== undefined && input . FeatureName !== null && { FeatureName : input . FeatureName } ) , ... ( input . RoleArn !== undefined && input . RoleArn !== null && { RoleArn : input . RoleArn } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRdsDbInstanceAssociatedRoles = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbInstanceAssociatedRole ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbInstanceDetails = ( input , context ) : any => { return { ... ( input . AllocatedStorage !== undefined && input . AllocatedStorage !== null && { AllocatedStorage : input . AllocatedStorage } ) , ... ( input . AssociatedRoles !== undefined && input . AssociatedRoles !== null && { AssociatedRoles : serializeAws_restJson1AwsRdsDbInstanceAssociatedRoles ( input . AssociatedRoles , context ) , } ) , ... ( input . AutoMinorVersionUpgrade !== undefined && input . AutoMinorVersionUpgrade !== null && { AutoMinorVersionUpgrade : input . AutoMinorVersionUpgrade } ) , ... ( input . AvailabilityZone !== undefined && input . AvailabilityZone !== null && { AvailabilityZone : input . AvailabilityZone } ) , ... ( input . BackupRetentionPeriod !== undefined && input . BackupRetentionPeriod !== null && { BackupRetentionPeriod : input . BackupRetentionPeriod } ) , ... ( input . CACertificateIdentifier !== undefined && input . CACertificateIdentifier !== null && { CACertificateIdentifier : input . CACertificateIdentifier } ) , ... ( input . CharacterSetName !== undefined && input . CharacterSetName !== null && { CharacterSetName : input . CharacterSetName } ) , ... ( input . CopyTagsToSnapshot !== undefined && input . CopyTagsToSnapshot !== null && { CopyTagsToSnapshot : input . CopyTagsToSnapshot } ) , ... ( input . DBClusterIdentifier !== undefined && input . DBClusterIdentifier !== null && { DBClusterIdentifier : input . DBClusterIdentifier } ) , ... ( input . DBInstanceClass !== undefined && input . DBInstanceClass !== null && { DBInstanceClass : input . DBInstanceClass } ) , ... ( input . DBInstanceIdentifier !== undefined && input . DBInstanceIdentifier !== null && { DBInstanceIdentifier : input . DBInstanceIdentifier } ) , ... ( input . DBName !== undefined && input . DBName !== null && { DBName : input . DBName } ) , ... ( input . DbInstancePort !== undefined && input . DbInstancePort !== null && { DbInstancePort : input . DbInstancePort } ) , ... ( input . DbInstanceStatus !== undefined && input . DbInstanceStatus !== null && { DbInstanceStatus : input . DbInstanceStatus } ) , ... ( input . DbParameterGroups !== undefined && input . DbParameterGroups !== null && { DbParameterGroups : serializeAws_restJson1AwsRdsDbParameterGroups ( input . DbParameterGroups , context ) , } ) , ... ( input . DbSecurityGroups !== undefined && input . DbSecurityGroups !== null && { DbSecurityGroups : serializeAws_restJson1StringList ( input . DbSecurityGroups , context ) , } ) , ... ( input . DbSubnetGroup !== undefined && input . DbSubnetGroup !== null && { DbSubnetGroup : serializeAws_restJson1AwsRdsDbSubnetGroup ( input . DbSubnetGroup , context ) , } ) , ... ( input . DbiResourceId !== undefined && input . DbiResourceId !== null && { DbiResourceId : input . DbiResourceId } ) , ... ( input . DeletionProtection !== undefined && input . DeletionProtection !== null && { DeletionProtection : input . DeletionProtection } ) , ... ( input . DomainMemberships !== undefined && input . DomainMemberships !== null && { DomainMemberships : serializeAws_restJson1AwsRdsDbDomainMemberships ( input . DomainMemberships , context ) , } ) , ... ( input . EnabledCloudWatchLogsExports !== undefined && input . EnabledCloudWatchLogsExports !== null && { EnabledCloudWatchLogsExports : serializeAws_restJson1StringList ( input . EnabledCloudWatchLogsExports , context ) , } ) , ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : serializeAws_restJson1AwsRdsDbInstanceEndpoint ( input . Endpoint , context ) } ) , ... ( input . Engine !== undefined && input . Engine !== null && { Engine : input . Engine } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . EnhancedMonitoringResourceArn !== undefined && input . EnhancedMonitoringResourceArn !== null && { EnhancedMonitoringResourceArn : input . EnhancedMonitoringResourceArn , } ) , ... ( input . IAMDatabaseAuthenticationEnabled !== undefined && input . IAMDatabaseAuthenticationEnabled !== null && { IAMDatabaseAuthenticationEnabled : input . IAMDatabaseAuthenticationEnabled , } ) , ... ( input . InstanceCreateTime !== undefined && input . InstanceCreateTime !== null && { InstanceCreateTime : input . InstanceCreateTime } ) , ... ( input . Iops !== undefined && input . Iops !== null && { Iops : input . Iops } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . LatestRestorableTime !== undefined && input . LatestRestorableTime !== null && { LatestRestorableTime : input . LatestRestorableTime } ) , ... ( input . LicenseModel !== undefined && input . LicenseModel !== null && { LicenseModel : input . LicenseModel } ) , ... ( input . ListenerEndpoint !== undefined && input . ListenerEndpoint !== null && { ListenerEndpoint : serializeAws_restJson1AwsRdsDbInstanceEndpoint ( input . ListenerEndpoint , context ) , } ) , ... ( input . MasterUsername !== undefined && input . MasterUsername !== null && { MasterUsername : input . MasterUsername } ) , ... ( input . MaxAllocatedStorage !== undefined && input . MaxAllocatedStorage !== null && { MaxAllocatedStorage : input . MaxAllocatedStorage } ) , ... ( input . MonitoringInterval !== undefined && input . MonitoringInterval !== null && { MonitoringInterval : input . MonitoringInterval } ) , ... ( input . MonitoringRoleArn !== undefined && input . MonitoringRoleArn !== null && { MonitoringRoleArn : input . MonitoringRoleArn } ) , ... ( input . MultiAz !== undefined && input . MultiAz !== null && { MultiAz : input . MultiAz } ) , ... ( input . OptionGroupMemberships !== undefined && input . OptionGroupMemberships !== null && { OptionGroupMemberships : serializeAws_restJson1AwsRdsDbOptionGroupMemberships ( input . OptionGroupMemberships , context ) , } ) , ... ( input . PendingModifiedValues !== undefined && input . PendingModifiedValues !== null && { PendingModifiedValues : serializeAws_restJson1AwsRdsDbPendingModifiedValues ( input . PendingModifiedValues , context ) , } ) , ... ( input . PerformanceInsightsEnabled !== undefined && input . PerformanceInsightsEnabled !== null && { PerformanceInsightsEnabled : input . PerformanceInsightsEnabled } ) , ... ( input . PerformanceInsightsKmsKeyId !== undefined && input . PerformanceInsightsKmsKeyId !== null && { PerformanceInsightsKmsKeyId : input . PerformanceInsightsKmsKeyId } ) , ... ( input . PerformanceInsightsRetentionPeriod !== undefined && input . PerformanceInsightsRetentionPeriod !== null && { PerformanceInsightsRetentionPeriod : input . PerformanceInsightsRetentionPeriod , } ) , ... ( input . PreferredBackupWindow !== undefined && input . PreferredBackupWindow !== null && { PreferredBackupWindow : input . PreferredBackupWindow } ) , ... ( input . PreferredMaintenanceWindow !== undefined && input . PreferredMaintenanceWindow !== null && { PreferredMaintenanceWindow : input . PreferredMaintenanceWindow } ) , ... ( input . ProcessorFeatures !== undefined && input . ProcessorFeatures !== null && { ProcessorFeatures : serializeAws_restJson1AwsRdsDbProcessorFeatures ( input . ProcessorFeatures , context ) , } ) , ... ( input . PromotionTier !== undefined && input . PromotionTier !== null && { PromotionTier : input . PromotionTier } ) , ... ( input . PubliclyAccessible !== undefined && input . PubliclyAccessible !== null && { PubliclyAccessible : input . PubliclyAccessible } ) , ... ( input . ReadReplicaDBClusterIdentifiers !== undefined && input . ReadReplicaDBClusterIdentifiers !== null && { ReadReplicaDBClusterIdentifiers : serializeAws_restJson1StringList ( input . ReadReplicaDBClusterIdentifiers , context ) , } ) , ... ( input . ReadReplicaDBInstanceIdentifiers !== undefined && input . ReadReplicaDBInstanceIdentifiers !== null && { ReadReplicaDBInstanceIdentifiers : serializeAws_restJson1StringList ( input . ReadReplicaDBInstanceIdentifiers , context ) , } ) , ... ( input . ReadReplicaSourceDBInstanceIdentifier !== undefined && input . ReadReplicaSourceDBInstanceIdentifier !== null && { ReadReplicaSourceDBInstanceIdentifier : input . ReadReplicaSourceDBInstanceIdentifier , } ) , ... ( input . SecondaryAvailabilityZone !== undefined && input . SecondaryAvailabilityZone !== null && { SecondaryAvailabilityZone : input . SecondaryAvailabilityZone } ) , ... ( input . StatusInfos !== undefined && input . StatusInfos !== null && { StatusInfos : serializeAws_restJson1AwsRdsDbStatusInfos ( input . StatusInfos , context ) , } ) , ... ( input . StorageEncrypted !== undefined && input . StorageEncrypted !== null && { StorageEncrypted : input . StorageEncrypted } ) , ... ( input . StorageType !== undefined && input . StorageType !== null && { StorageType : input . StorageType } ) , ... ( input . TdeCredentialArn !== undefined && input . TdeCredentialArn !== null && { TdeCredentialArn : input . TdeCredentialArn } ) , ... ( input . Timezone !== undefined && input . Timezone !== null && { Timezone : input . Timezone } ) , ... ( input . VpcSecurityGroups !== undefined && input . VpcSecurityGroups !== null && { VpcSecurityGroups : serializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups ( input . VpcSecurityGroups , context ) , } ) , } ; } ; const serializeAws_restJson1AwsRdsDbInstanceEndpoint = ( input , context ) : any => { return { ... ( input . Address !== undefined && input . Address !== null && { Address : input . Address } ) , ... ( input . HostedZoneId !== undefined && input . HostedZoneId !== null && { HostedZoneId : input . HostedZoneId } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , } ; } ; const serializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroup = ( input , context ) : any => { return { ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . VpcSecurityGroupId !== undefined && input . VpcSecurityGroupId !== null && { VpcSecurityGroupId : input . VpcSecurityGroupId } ) , } ; } ; const serializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbOptionGroupMembership = ( input , context ) : any => { return { ... ( input . OptionGroupName !== undefined && input . OptionGroupName !== null && { OptionGroupName : input . OptionGroupName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRdsDbOptionGroupMemberships = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbOptionGroupMembership ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbParameterGroup = ( input , context ) : any => { return { ... ( input . DbParameterGroupName !== undefined && input . DbParameterGroupName !== null && { DbParameterGroupName : input . DbParameterGroupName } ) , ... ( input . ParameterApplyStatus !== undefined && input . ParameterApplyStatus !== null && { ParameterApplyStatus : input . ParameterApplyStatus } ) , } ; } ; const serializeAws_restJson1AwsRdsDbParameterGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbParameterGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbPendingModifiedValues = ( input , context ) : any => { return { ... ( input . AllocatedStorage !== undefined && input . AllocatedStorage !== null && { AllocatedStorage : input . AllocatedStorage } ) , ... ( input . BackupRetentionPeriod !== undefined && input . BackupRetentionPeriod !== null && { BackupRetentionPeriod : input . BackupRetentionPeriod } ) , ... ( input . CaCertificateIdentifier !== undefined && input . CaCertificateIdentifier !== null && { CaCertificateIdentifier : input . CaCertificateIdentifier } ) , ... ( input . DbInstanceClass !== undefined && input . DbInstanceClass !== null && { DbInstanceClass : input . DbInstanceClass } ) , ... ( input . DbInstanceIdentifier !== undefined && input . DbInstanceIdentifier !== null && { DbInstanceIdentifier : input . DbInstanceIdentifier } ) , ... ( input . DbSubnetGroupName !== undefined && input . DbSubnetGroupName !== null && { DbSubnetGroupName : input . DbSubnetGroupName } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . Iops !== undefined && input . Iops !== null && { Iops : input . Iops } ) , ... ( input . LicenseModel !== undefined && input . LicenseModel !== null && { LicenseModel : input . LicenseModel } ) , ... ( input . MasterUserPassword !== undefined && input . MasterUserPassword !== null && { MasterUserPassword : input . MasterUserPassword } ) , ... ( input . MultiAZ !== undefined && input . MultiAZ !== null && { MultiAZ : input . MultiAZ } ) , ... ( input . PendingCloudWatchLogsExports !== undefined && input . PendingCloudWatchLogsExports !== null && { PendingCloudWatchLogsExports : serializeAws_restJson1AwsRdsPendingCloudWatchLogsExports ( input . PendingCloudWatchLogsExports , context ) , } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . ProcessorFeatures !== undefined && input . ProcessorFeatures !== null && { ProcessorFeatures : serializeAws_restJson1AwsRdsDbProcessorFeatures ( input . ProcessorFeatures , context ) , } ) , ... ( input . StorageType !== undefined && input . StorageType !== null && { StorageType : input . StorageType } ) , } ; } ; const serializeAws_restJson1AwsRdsDbProcessorFeature = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsRdsDbProcessorFeatures = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbProcessorFeature ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbSnapshotDetails = ( input , context ) : any => { return { ... ( input . AllocatedStorage !== undefined && input . AllocatedStorage !== null && { AllocatedStorage : input . AllocatedStorage } ) , ... ( input . AvailabilityZone !== undefined && input . AvailabilityZone !== null && { AvailabilityZone : input . AvailabilityZone } ) , ... ( input . DbInstanceIdentifier !== undefined && input . DbInstanceIdentifier !== null && { DbInstanceIdentifier : input . DbInstanceIdentifier } ) , ... ( input . DbSnapshotIdentifier !== undefined && input . DbSnapshotIdentifier !== null && { DbSnapshotIdentifier : input . DbSnapshotIdentifier } ) , ... ( input . DbiResourceId !== undefined && input . DbiResourceId !== null && { DbiResourceId : input . DbiResourceId } ) , ... ( input . Encrypted !== undefined && input . Encrypted !== null && { Encrypted : input . Encrypted } ) , ... ( input . Engine !== undefined && input . Engine !== null && { Engine : input . Engine } ) , ... ( input . EngineVersion !== undefined && input . EngineVersion !== null && { EngineVersion : input . EngineVersion } ) , ... ( input . IamDatabaseAuthenticationEnabled !== undefined && input . IamDatabaseAuthenticationEnabled !== null && { IamDatabaseAuthenticationEnabled : input . IamDatabaseAuthenticationEnabled , } ) , ... ( input . InstanceCreateTime !== undefined && input . InstanceCreateTime !== null && { InstanceCreateTime : input . InstanceCreateTime } ) , ... ( input . Iops !== undefined && input . Iops !== null && { Iops : input . Iops } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . LicenseModel !== undefined && input . LicenseModel !== null && { LicenseModel : input . LicenseModel } ) , ... ( input . MasterUsername !== undefined && input . MasterUsername !== null && { MasterUsername : input . MasterUsername } ) , ... ( input . OptionGroupName !== undefined && input . OptionGroupName !== null && { OptionGroupName : input . OptionGroupName } ) , ... ( input . PercentProgress !== undefined && input . PercentProgress !== null && { PercentProgress : input . PercentProgress } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , ... ( input . ProcessorFeatures !== undefined && input . ProcessorFeatures !== null && { ProcessorFeatures : serializeAws_restJson1AwsRdsDbProcessorFeatures ( input . ProcessorFeatures , context ) , } ) , ... ( input . SnapshotCreateTime !== undefined && input . SnapshotCreateTime !== null && { SnapshotCreateTime : input . SnapshotCreateTime } ) , ... ( input . SnapshotType !== undefined && input . SnapshotType !== null && { SnapshotType : input . SnapshotType } ) , ... ( input . SourceDbSnapshotIdentifier !== undefined && input . SourceDbSnapshotIdentifier !== null && { SourceDbSnapshotIdentifier : input . SourceDbSnapshotIdentifier } ) , ... ( input . SourceRegion !== undefined && input . SourceRegion !== null && { SourceRegion : input . SourceRegion } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StorageType !== undefined && input . StorageType !== null && { StorageType : input . StorageType } ) , ... ( input . TdeCredentialArn !== undefined && input . TdeCredentialArn !== null && { TdeCredentialArn : input . TdeCredentialArn } ) , ... ( input . Timezone !== undefined && input . Timezone !== null && { Timezone : input . Timezone } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsRdsDbStatusInfo = ( input , context ) : any => { return { ... ( input . Message !== undefined && input . Message !== null && { Message : input . Message } ) , ... ( input . Normal !== undefined && input . Normal !== null && { Normal : input . Normal } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StatusType !== undefined && input . StatusType !== null && { StatusType : input . StatusType } ) , } ; } ; const serializeAws_restJson1AwsRdsDbStatusInfos = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbStatusInfo ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsDbSubnetGroup = ( input , context ) : any => { return { ... ( input . DbSubnetGroupArn !== undefined && input . DbSubnetGroupArn !== null && { DbSubnetGroupArn : input . DbSubnetGroupArn } ) , ... ( input . DbSubnetGroupDescription !== undefined && input . DbSubnetGroupDescription !== null && { DbSubnetGroupDescription : input . DbSubnetGroupDescription } ) , ... ( input . DbSubnetGroupName !== undefined && input . DbSubnetGroupName !== null && { DbSubnetGroupName : input . DbSubnetGroupName } ) , ... ( input . SubnetGroupStatus !== undefined && input . SubnetGroupStatus !== null && { SubnetGroupStatus : input . SubnetGroupStatus } ) , ... ( input . Subnets !== undefined && input . Subnets !== null && { Subnets : serializeAws_restJson1AwsRdsDbSubnetGroupSubnets ( input . Subnets , context ) } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , } ; } ; const serializeAws_restJson1AwsRdsDbSubnetGroupSubnet = ( input , context ) : any => { return { ... ( input . SubnetAvailabilityZone !== undefined && input . SubnetAvailabilityZone !== null && { SubnetAvailabilityZone : serializeAws_restJson1AwsRdsDbSubnetGroupSubnetAvailabilityZone ( input . SubnetAvailabilityZone , context ) , } ) , ... ( input . SubnetIdentifier !== undefined && input . SubnetIdentifier !== null && { SubnetIdentifier : input . SubnetIdentifier } ) , ... ( input . SubnetStatus !== undefined && input . SubnetStatus !== null && { SubnetStatus : input . SubnetStatus } ) , } ; } ; const serializeAws_restJson1AwsRdsDbSubnetGroupSubnetAvailabilityZone = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ; } ; const serializeAws_restJson1AwsRdsDbSubnetGroupSubnets = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRdsDbSubnetGroupSubnet ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRdsEventSubscriptionDetails = ( input , context ) : any => { return { ... ( input . CustSubscriptionId !== undefined && input . CustSubscriptionId !== null && { CustSubscriptionId : input . CustSubscriptionId } ) , ... ( input . CustomerAwsId !== undefined && input . CustomerAwsId !== null && { CustomerAwsId : input . CustomerAwsId } ) , ... ( input . Enabled !== undefined && input . Enabled !== null && { Enabled : input . Enabled } ) , ... ( input . EventCategoriesList !== undefined && input . EventCategoriesList !== null && { EventCategoriesList : serializeAws_restJson1NonEmptyStringList ( input . EventCategoriesList , context ) , } ) , ... ( input . EventSubscriptionArn !== undefined && input . EventSubscriptionArn !== null && { EventSubscriptionArn : input . EventSubscriptionArn } ) , ... ( input . SnsTopicArn !== undefined && input . SnsTopicArn !== null && { SnsTopicArn : input . SnsTopicArn } ) , ... ( input . SourceIdsList !== undefined && input . SourceIdsList !== null && { SourceIdsList : serializeAws_restJson1NonEmptyStringList ( input . SourceIdsList , context ) , } ) , ... ( input . SourceType !== undefined && input . SourceType !== null && { SourceType : input . SourceType } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . SubscriptionCreationTime !== undefined && input . SubscriptionCreationTime !== null && { SubscriptionCreationTime : input . SubscriptionCreationTime } ) , } ; } ; const serializeAws_restJson1AwsRdsPendingCloudWatchLogsExports = ( input , context ) : any => { return { ... ( input . LogTypesToDisable !== undefined && input . LogTypesToDisable !== null && { LogTypesToDisable : serializeAws_restJson1StringList ( input . LogTypesToDisable , context ) , } ) , ... ( input . LogTypesToEnable !== undefined && input . LogTypesToEnable !== null && { LogTypesToEnable : serializeAws_restJson1StringList ( input . LogTypesToEnable , context ) , } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterNode = ( input , context ) : any => { return { ... ( input . NodeRole !== undefined && input . NodeRole !== null && { NodeRole : input . NodeRole } ) , ... ( input . PrivateIpAddress !== undefined && input . PrivateIpAddress !== null && { PrivateIpAddress : input . PrivateIpAddress } ) , ... ( input . PublicIpAddress !== undefined && input . PublicIpAddress !== null && { PublicIpAddress : input . PublicIpAddress } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterNodes = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterClusterNode ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterParameterGroup = ( input , context ) : any => { return { ... ( input . ClusterParameterStatusList !== undefined && input . ClusterParameterStatusList !== null && { ClusterParameterStatusList : serializeAws_restJson1AwsRedshiftClusterClusterParameterStatusList ( input . ClusterParameterStatusList , context ) , } ) , ... ( input . ParameterApplyStatus !== undefined && input . ParameterApplyStatus !== null && { ParameterApplyStatus : input . ParameterApplyStatus } ) , ... ( input . ParameterGroupName !== undefined && input . ParameterGroupName !== null && { ParameterGroupName : input . ParameterGroupName } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterParameterGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterClusterParameterGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterParameterStatus = ( input , context ) : any => { return { ... ( input . ParameterApplyErrorDescription !== undefined && input . ParameterApplyErrorDescription !== null && { ParameterApplyErrorDescription : input . ParameterApplyErrorDescription , } ) , ... ( input . ParameterApplyStatus !== undefined && input . ParameterApplyStatus !== null && { ParameterApplyStatus : input . ParameterApplyStatus } ) , ... ( input . ParameterName !== undefined && input . ParameterName !== null && { ParameterName : input . ParameterName } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterParameterStatusList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterClusterParameterStatus ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterSecurityGroup = ( input , context ) : any => { return { ... ( input . ClusterSecurityGroupName !== undefined && input . ClusterSecurityGroupName !== null && { ClusterSecurityGroupName : input . ClusterSecurityGroupName } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterSecurityGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterClusterSecurityGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterClusterSnapshotCopyStatus = ( input , context ) : any => { return { ... ( input . DestinationRegion !== undefined && input . DestinationRegion !== null && { DestinationRegion : input . DestinationRegion } ) , ... ( input . ManualSnapshotRetentionPeriod !== undefined && input . ManualSnapshotRetentionPeriod !== null && { ManualSnapshotRetentionPeriod : input . ManualSnapshotRetentionPeriod , } ) , ... ( input . RetentionPeriod !== undefined && input . RetentionPeriod !== null && { RetentionPeriod : input . RetentionPeriod } ) , ... ( input . SnapshotCopyGrantName !== undefined && input . SnapshotCopyGrantName !== null && { SnapshotCopyGrantName : input . SnapshotCopyGrantName } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindow = ( input , context ) : any => { return { ... ( input . DeferMaintenanceEndTime !== undefined && input . DeferMaintenanceEndTime !== null && { DeferMaintenanceEndTime : input . DeferMaintenanceEndTime } ) , ... ( input . DeferMaintenanceIdentifier !== undefined && input . DeferMaintenanceIdentifier !== null && { DeferMaintenanceIdentifier : input . DeferMaintenanceIdentifier } ) , ... ( input . DeferMaintenanceStartTime !== undefined && input . DeferMaintenanceStartTime !== null && { DeferMaintenanceStartTime : input . DeferMaintenanceStartTime } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindows = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindow ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterDetails = ( input , context ) : any => { return { ... ( input . AllowVersionUpgrade !== undefined && input . AllowVersionUpgrade !== null && { AllowVersionUpgrade : input . AllowVersionUpgrade } ) , ... ( input . AutomatedSnapshotRetentionPeriod !== undefined && input . AutomatedSnapshotRetentionPeriod !== null && { AutomatedSnapshotRetentionPeriod : input . AutomatedSnapshotRetentionPeriod , } ) , ... ( input . AvailabilityZone !== undefined && input . AvailabilityZone !== null && { AvailabilityZone : input . AvailabilityZone } ) , ... ( input . ClusterAvailabilityStatus !== undefined && input . ClusterAvailabilityStatus !== null && { ClusterAvailabilityStatus : input . ClusterAvailabilityStatus } ) , ... ( input . ClusterCreateTime !== undefined && input . ClusterCreateTime !== null && { ClusterCreateTime : input . ClusterCreateTime } ) , ... ( input . ClusterIdentifier !== undefined && input . ClusterIdentifier !== null && { ClusterIdentifier : input . ClusterIdentifier } ) , ... ( input . ClusterNodes !== undefined && input . ClusterNodes !== null && { ClusterNodes : serializeAws_restJson1AwsRedshiftClusterClusterNodes ( input . ClusterNodes , context ) , } ) , ... ( input . ClusterParameterGroups !== undefined && input . ClusterParameterGroups !== null && { ClusterParameterGroups : serializeAws_restJson1AwsRedshiftClusterClusterParameterGroups ( input . ClusterParameterGroups , context ) , } ) , ... ( input . ClusterPublicKey !== undefined && input . ClusterPublicKey !== null && { ClusterPublicKey : input . ClusterPublicKey } ) , ... ( input . ClusterRevisionNumber !== undefined && input . ClusterRevisionNumber !== null && { ClusterRevisionNumber : input . ClusterRevisionNumber } ) , ... ( input . ClusterSecurityGroups !== undefined && input . ClusterSecurityGroups !== null && { ClusterSecurityGroups : serializeAws_restJson1AwsRedshiftClusterClusterSecurityGroups ( input . ClusterSecurityGroups , context ) , } ) , ... ( input . ClusterSnapshotCopyStatus !== undefined && input . ClusterSnapshotCopyStatus !== null && { ClusterSnapshotCopyStatus : serializeAws_restJson1AwsRedshiftClusterClusterSnapshotCopyStatus ( input . ClusterSnapshotCopyStatus , context ) , } ) , ... ( input . ClusterStatus !== undefined && input . ClusterStatus !== null && { ClusterStatus : input . ClusterStatus } ) , ... ( input . ClusterSubnetGroupName !== undefined && input . ClusterSubnetGroupName !== null && { ClusterSubnetGroupName : input . ClusterSubnetGroupName } ) , ... ( input . ClusterVersion !== undefined && input . ClusterVersion !== null && { ClusterVersion : input . ClusterVersion } ) , ... ( input . DBName !== undefined && input . DBName !== null && { DBName : input . DBName } ) , ... ( input . DeferredMaintenanceWindows !== undefined && input . DeferredMaintenanceWindows !== null && { DeferredMaintenanceWindows : serializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindows ( input . DeferredMaintenanceWindows , context ) , } ) , ... ( input . ElasticIpStatus !== undefined && input . ElasticIpStatus !== null && { ElasticIpStatus : serializeAws_restJson1AwsRedshiftClusterElasticIpStatus ( input . ElasticIpStatus , context ) , } ) , ... ( input . ElasticResizeNumberOfNodeOptions !== undefined && input . ElasticResizeNumberOfNodeOptions !== null && { ElasticResizeNumberOfNodeOptions : input . ElasticResizeNumberOfNodeOptions , } ) , ... ( input . Encrypted !== undefined && input . Encrypted !== null && { Encrypted : input . Encrypted } ) , ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : serializeAws_restJson1AwsRedshiftClusterEndpoint ( input . Endpoint , context ) , } ) , ... ( input . EnhancedVpcRouting !== undefined && input . EnhancedVpcRouting !== null && { EnhancedVpcRouting : input . EnhancedVpcRouting } ) , ... ( input . ExpectedNextSnapshotScheduleTime !== undefined && input . ExpectedNextSnapshotScheduleTime !== null && { ExpectedNextSnapshotScheduleTime : input . ExpectedNextSnapshotScheduleTime , } ) , ... ( input . ExpectedNextSnapshotScheduleTimeStatus !== undefined && input . ExpectedNextSnapshotScheduleTimeStatus !== null && { ExpectedNextSnapshotScheduleTimeStatus : input . ExpectedNextSnapshotScheduleTimeStatus , } ) , ... ( input . HsmStatus !== undefined && input . HsmStatus !== null && { HsmStatus : serializeAws_restJson1AwsRedshiftClusterHsmStatus ( input . HsmStatus , context ) , } ) , ... ( input . IamRoles !== undefined && input . IamRoles !== null && { IamRoles : serializeAws_restJson1AwsRedshiftClusterIamRoles ( input . IamRoles , context ) , } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . MaintenanceTrackName !== undefined && input . MaintenanceTrackName !== null && { MaintenanceTrackName : input . MaintenanceTrackName } ) , ... ( input . ManualSnapshotRetentionPeriod !== undefined && input . ManualSnapshotRetentionPeriod !== null && { ManualSnapshotRetentionPeriod : input . ManualSnapshotRetentionPeriod , } ) , ... ( input . MasterUsername !== undefined && input . MasterUsername !== null && { MasterUsername : input . MasterUsername } ) , ... ( input . NextMaintenanceWindowStartTime !== undefined && input . NextMaintenanceWindowStartTime !== null && { NextMaintenanceWindowStartTime : input . NextMaintenanceWindowStartTime , } ) , ... ( input . NodeType !== undefined && input . NodeType !== null && { NodeType : input . NodeType } ) , ... ( input . NumberOfNodes !== undefined && input . NumberOfNodes !== null && { NumberOfNodes : input . NumberOfNodes } ) , ... ( input . PendingActions !== undefined && input . PendingActions !== null && { PendingActions : serializeAws_restJson1StringList ( input . PendingActions , context ) , } ) , ... ( input . PendingModifiedValues !== undefined && input . PendingModifiedValues !== null && { PendingModifiedValues : serializeAws_restJson1AwsRedshiftClusterPendingModifiedValues ( input . PendingModifiedValues , context ) , } ) , ... ( input . PreferredMaintenanceWindow !== undefined && input . PreferredMaintenanceWindow !== null && { PreferredMaintenanceWindow : input . PreferredMaintenanceWindow } ) , ... ( input . PubliclyAccessible !== undefined && input . PubliclyAccessible !== null && { PubliclyAccessible : input . PubliclyAccessible } ) , ... ( input . ResizeInfo !== undefined && input . ResizeInfo !== null && { ResizeInfo : serializeAws_restJson1AwsRedshiftClusterResizeInfo ( input . ResizeInfo , context ) , } ) , ... ( input . RestoreStatus !== undefined && input . RestoreStatus !== null && { RestoreStatus : serializeAws_restJson1AwsRedshiftClusterRestoreStatus ( input . RestoreStatus , context ) , } ) , ... ( input . SnapshotScheduleIdentifier !== undefined && input . SnapshotScheduleIdentifier !== null && { SnapshotScheduleIdentifier : input . SnapshotScheduleIdentifier } ) , ... ( input . SnapshotScheduleState !== undefined && input . SnapshotScheduleState !== null && { SnapshotScheduleState : input . SnapshotScheduleState } ) , ... ( input . VpcId !== undefined && input . VpcId !== null && { VpcId : input . VpcId } ) , ... ( input . VpcSecurityGroups !== undefined && input . VpcSecurityGroups !== null && { VpcSecurityGroups : serializeAws_restJson1AwsRedshiftClusterVpcSecurityGroups ( input . VpcSecurityGroups , context ) , } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterElasticIpStatus = ( input , context ) : any => { return { ... ( input . ElasticIp !== undefined && input . ElasticIp !== null && { ElasticIp : input . ElasticIp } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterEndpoint = ( input , context ) : any => { return { ... ( input . Address !== undefined && input . Address !== null && { Address : input . Address } ) , ... ( input . Port !== undefined && input . Port !== null && { Port : input . Port } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterHsmStatus = ( input , context ) : any => { return { ... ( input . HsmClientCertificateIdentifier !== undefined && input . HsmClientCertificateIdentifier !== null && { HsmClientCertificateIdentifier : input . HsmClientCertificateIdentifier , } ) , ... ( input . HsmConfigurationIdentifier !== undefined && input . HsmConfigurationIdentifier !== null && { HsmConfigurationIdentifier : input . HsmConfigurationIdentifier } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterIamRole = ( input , context ) : any => { return { ... ( input . ApplyStatus !== undefined && input . ApplyStatus !== null && { ApplyStatus : input . ApplyStatus } ) , ... ( input . IamRoleArn !== undefined && input . IamRoleArn !== null && { IamRoleArn : input . IamRoleArn } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterIamRoles = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterIamRole ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsRedshiftClusterPendingModifiedValues = ( input , context ) : any => { return { ... ( input . AutomatedSnapshotRetentionPeriod !== undefined && input . AutomatedSnapshotRetentionPeriod !== null && { AutomatedSnapshotRetentionPeriod : input . AutomatedSnapshotRetentionPeriod , } ) , ... ( input . ClusterIdentifier !== undefined && input . ClusterIdentifier !== null && { ClusterIdentifier : input . ClusterIdentifier } ) , ... ( input . ClusterType !== undefined && input . ClusterType !== null && { ClusterType : input . ClusterType } ) , ... ( input . ClusterVersion !== undefined && input . ClusterVersion !== null && { ClusterVersion : input . ClusterVersion } ) , ... ( input . EncryptionType !== undefined && input . EncryptionType !== null && { EncryptionType : input . EncryptionType } ) , ... ( input . EnhancedVpcRouting !== undefined && input . EnhancedVpcRouting !== null && { EnhancedVpcRouting : input . EnhancedVpcRouting } ) , ... ( input . MaintenanceTrackName !== undefined && input . MaintenanceTrackName !== null && { MaintenanceTrackName : input . MaintenanceTrackName } ) , ... ( input . MasterUserPassword !== undefined && input . MasterUserPassword !== null && { MasterUserPassword : input . MasterUserPassword } ) , ... ( input . NodeType !== undefined && input . NodeType !== null && { NodeType : input . NodeType } ) , ... ( input . NumberOfNodes !== undefined && input . NumberOfNodes !== null && { NumberOfNodes : input . NumberOfNodes } ) , ... ( input . PubliclyAccessible !== undefined && input . PubliclyAccessible !== null && { PubliclyAccessible : input . PubliclyAccessible } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterResizeInfo = ( input , context ) : any => { return { ... ( input . AllowCancelResize !== undefined && input . AllowCancelResize !== null && { AllowCancelResize : input . AllowCancelResize } ) , ... ( input . ResizeType !== undefined && input . ResizeType !== null && { ResizeType : input . ResizeType } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterRestoreStatus = ( input , context ) : any => { return { ... ( input . CurrentRestoreRateInMegaBytesPerSecond !== undefined && input . CurrentRestoreRateInMegaBytesPerSecond !== null && { CurrentRestoreRateInMegaBytesPerSecond : __serializeFloat ( input . CurrentRestoreRateInMegaBytesPerSecond ) , } ) , ... ( input . ElapsedTimeInSeconds !== undefined && input . ElapsedTimeInSeconds !== null && { ElapsedTimeInSeconds : input . ElapsedTimeInSeconds } ) , ... ( input . EstimatedTimeToCompletionInSeconds !== undefined && input . EstimatedTimeToCompletionInSeconds !== null && { EstimatedTimeToCompletionInSeconds : input . EstimatedTimeToCompletionInSeconds , } ) , ... ( input . ProgressInMegaBytes !== undefined && input . ProgressInMegaBytes !== null && { ProgressInMegaBytes : input . ProgressInMegaBytes } ) , ... ( input . SnapshotSizeInMegaBytes !== undefined && input . SnapshotSizeInMegaBytes !== null && { SnapshotSizeInMegaBytes : input . SnapshotSizeInMegaBytes } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterVpcSecurityGroup = ( input , context ) : any => { return { ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . VpcSecurityGroupId !== undefined && input . VpcSecurityGroupId !== null && { VpcSecurityGroupId : input . VpcSecurityGroupId } ) , } ; } ; const serializeAws_restJson1AwsRedshiftClusterVpcSecurityGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsRedshiftClusterVpcSecurityGroup ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3AccountPublicAccessBlockDetails = ( input , context ) : any => { return { ... ( input . BlockPublicAcls !== undefined && input . BlockPublicAcls !== null && { BlockPublicAcls : input . BlockPublicAcls } ) , ... ( input . BlockPublicPolicy !== undefined && input . BlockPublicPolicy !== null && { BlockPublicPolicy : input . BlockPublicPolicy } ) , ... ( input . IgnorePublicAcls !== undefined && input . IgnorePublicAcls !== null && { IgnorePublicAcls : input . IgnorePublicAcls } ) , ... ( input . RestrictPublicBuckets !== undefined && input . RestrictPublicBuckets !== null && { RestrictPublicBuckets : input . RestrictPublicBuckets } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationDetails = ( input , context ) : any => { return { ... ( input . Rules !== undefined && input . Rules !== null && { Rules : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesList ( input . Rules , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails = ( input , context ) : any => { return { ... ( input . DaysAfterInitiation !== undefined && input . DaysAfterInitiation !== null && { DaysAfterInitiation : input . DaysAfterInitiation } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesDetails = ( input , context ) : any => { return { ... ( input . AbortIncompleteMultipartUpload !== undefined && input . AbortIncompleteMultipartUpload !== null && { AbortIncompleteMultipartUpload : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails ( input . AbortIncompleteMultipartUpload , context ) , } ) , ... ( input . ExpirationDate !== undefined && input . ExpirationDate !== null && { ExpirationDate : input . ExpirationDate } ) , ... ( input . ExpirationInDays !== undefined && input . ExpirationInDays !== null && { ExpirationInDays : input . ExpirationInDays } ) , ... ( input . ExpiredObjectDeleteMarker !== undefined && input . ExpiredObjectDeleteMarker !== null && { ExpiredObjectDeleteMarker : input . ExpiredObjectDeleteMarker } ) , ... ( input . Filter !== undefined && input . Filter !== null && { Filter : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails ( input . Filter , context ) , } ) , ... ( input . ID !== undefined && input . ID !== null && { ID : input . ID } ) , ... ( input . NoncurrentVersionExpirationInDays !== undefined && input . NoncurrentVersionExpirationInDays !== null && { NoncurrentVersionExpirationInDays : input . NoncurrentVersionExpirationInDays , } ) , ... ( input . NoncurrentVersionTransitions !== undefined && input . NoncurrentVersionTransitions !== null && { NoncurrentVersionTransitions : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList ( input . NoncurrentVersionTransitions , context ) , } ) , ... ( input . Prefix !== undefined && input . Prefix !== null && { Prefix : input . Prefix } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . Transitions !== undefined && input . Transitions !== null && { Transitions : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsList ( input . Transitions , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails = ( input , context ) : any => { return { ... ( input . Predicate !== undefined && input . Predicate !== null && { Predicate : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails ( input . Predicate , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails = ( input , context ) : any => { return { ... ( input . Operands !== undefined && input . Operands !== null && { Operands : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList ( input . Operands , context ) , } ) , ... ( input . Prefix !== undefined && input . Prefix !== null && { Prefix : input . Prefix } ) , ... ( input . Tag !== undefined && input . Tag !== null && { Tag : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails ( input . Tag , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails = ( input , context ) : any => { return { ... ( input . Prefix !== undefined && input . Prefix !== null && { Prefix : input . Prefix } ) , ... ( input . Tag !== undefined && input . Tag !== null && { Tag : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails ( input . Tag , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails = ( input , context ) : any => { return { ... ( input . Key !== undefined && input . Key !== null && { Key : input . Key } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails = ( input , context ) : any => { return { ... ( input . Key !== undefined && input . Key !== null && { Key : input . Key } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails = ( input , context ) : any => { return { ... ( input . Days !== undefined && input . Days !== null && { Days : input . Days } ) , ... ( input . StorageClass !== undefined && input . StorageClass !== null && { StorageClass : input . StorageClass } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails = ( input , context ) : any => { return { ... ( input . Date !== undefined && input . Date !== null && { Date : input . Date } ) , ... ( input . Days !== undefined && input . Days !== null && { Days : input . Days } ) , ... ( input . StorageClass !== undefined && input . StorageClass !== null && { StorageClass : input . StorageClass } ) , } ; } ; const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketBucketVersioningConfiguration = ( input , context ) : any => { return { ... ( input . IsMfaDeleteEnabled !== undefined && input . IsMfaDeleteEnabled !== null && { IsMfaDeleteEnabled : input . IsMfaDeleteEnabled } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsS3BucketDetails = ( input , context ) : any => { return { ... ( input . AccessControlList !== undefined && input . AccessControlList !== null && { AccessControlList : input . AccessControlList } ) , ... ( input . BucketLifecycleConfiguration !== undefined && input . BucketLifecycleConfiguration !== null && { BucketLifecycleConfiguration : serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationDetails ( input . BucketLifecycleConfiguration , context ) , } ) , ... ( input . BucketLoggingConfiguration !== undefined && input . BucketLoggingConfiguration !== null && { BucketLoggingConfiguration : serializeAws_restJson1AwsS3BucketLoggingConfiguration ( input . BucketLoggingConfiguration , context ) , } ) , ... ( input . BucketNotificationConfiguration !== undefined && input . BucketNotificationConfiguration !== null && { BucketNotificationConfiguration : serializeAws_restJson1AwsS3BucketNotificationConfiguration ( input . BucketNotificationConfiguration , context ) , } ) , ... ( input . BucketVersioningConfiguration !== undefined && input . BucketVersioningConfiguration !== null && { BucketVersioningConfiguration : serializeAws_restJson1AwsS3BucketBucketVersioningConfiguration ( input . BucketVersioningConfiguration , context ) , } ) , ... ( input . BucketWebsiteConfiguration !== undefined && input . BucketWebsiteConfiguration !== null && { BucketWebsiteConfiguration : serializeAws_restJson1AwsS3BucketWebsiteConfiguration ( input . BucketWebsiteConfiguration , context ) , } ) , ... ( input . CreatedAt !== undefined && input . CreatedAt !== null && { CreatedAt : input . CreatedAt } ) , ... ( input . OwnerAccountId !== undefined && input . OwnerAccountId !== null && { OwnerAccountId : input . OwnerAccountId } ) , ... ( input . OwnerId !== undefined && input . OwnerId !== null && { OwnerId : input . OwnerId } ) , ... ( input . OwnerName !== undefined && input . OwnerName !== null && { OwnerName : input . OwnerName } ) , ... ( input . PublicAccessBlockConfiguration !== undefined && input . PublicAccessBlockConfiguration !== null && { PublicAccessBlockConfiguration : serializeAws_restJson1AwsS3AccountPublicAccessBlockDetails ( input . PublicAccessBlockConfiguration , context ) , } ) , ... ( input . ServerSideEncryptionConfiguration !== undefined && input . ServerSideEncryptionConfiguration !== null && { ServerSideEncryptionConfiguration : serializeAws_restJson1AwsS3BucketServerSideEncryptionConfiguration ( input . ServerSideEncryptionConfiguration , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketLoggingConfiguration = ( input , context ) : any => { return { ... ( input . DestinationBucketName !== undefined && input . DestinationBucketName !== null && { DestinationBucketName : input . DestinationBucketName } ) , ... ( input . LogFilePrefix !== undefined && input . LogFilePrefix !== null && { LogFilePrefix : input . LogFilePrefix } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfiguration = ( input , context ) : any => { return { ... ( input . Configurations !== undefined && input . Configurations !== null && { Configurations : serializeAws_restJson1AwsS3BucketNotificationConfigurationDetails ( input . Configurations , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationDetail = ( input , context ) : any => { return { ... ( input . Destination !== undefined && input . Destination !== null && { Destination : input . Destination } ) , ... ( input . Events !== undefined && input . Events !== null && { Events : serializeAws_restJson1AwsS3BucketNotificationConfigurationEvents ( input . Events , context ) , } ) , ... ( input . Filter !== undefined && input . Filter !== null && { Filter : serializeAws_restJson1AwsS3BucketNotificationConfigurationFilter ( input . Filter , context ) , } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationDetails = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketNotificationConfigurationDetail ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationEvents = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationFilter = ( input , context ) : any => { return { ... ( input . S3KeyFilter !== undefined && input . S3KeyFilter !== null && { S3KeyFilter : serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilter ( input . S3KeyFilter , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilter = ( input , context ) : any => { return { ... ( input . FilterRules !== undefined && input . FilterRules !== null && { FilterRules : serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRules ( input . FilterRules , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRule = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRules = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRule ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketServerSideEncryptionByDefault = ( input , context ) : any => { return { ... ( input . KMSMasterKeyID !== undefined && input . KMSMasterKeyID !== null && { KMSMasterKeyID : input . KMSMasterKeyID } ) , ... ( input . SSEAlgorithm !== undefined && input . SSEAlgorithm !== null && { SSEAlgorithm : input . SSEAlgorithm } ) , } ; } ; const serializeAws_restJson1AwsS3BucketServerSideEncryptionConfiguration = ( input , context ) : any => { return { ... ( input . Rules !== undefined && input . Rules !== null && { Rules : serializeAws_restJson1AwsS3BucketServerSideEncryptionRules ( input . Rules , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketServerSideEncryptionRule = ( input , context ) : any => { return { ... ( input . ApplyServerSideEncryptionByDefault !== undefined && input . ApplyServerSideEncryptionByDefault !== null && { ApplyServerSideEncryptionByDefault : serializeAws_restJson1AwsS3BucketServerSideEncryptionByDefault ( input . ApplyServerSideEncryptionByDefault , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketServerSideEncryptionRules = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketServerSideEncryptionRule ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfiguration = ( input , context ) : any => { return { ... ( input . ErrorDocument !== undefined && input . ErrorDocument !== null && { ErrorDocument : input . ErrorDocument } ) , ... ( input . IndexDocumentSuffix !== undefined && input . IndexDocumentSuffix !== null && { IndexDocumentSuffix : input . IndexDocumentSuffix } ) , ... ( input . RedirectAllRequestsTo !== undefined && input . RedirectAllRequestsTo !== null && { RedirectAllRequestsTo : serializeAws_restJson1AwsS3BucketWebsiteConfigurationRedirectTo ( input . RedirectAllRequestsTo , context ) , } ) , ... ( input . RoutingRules !== undefined && input . RoutingRules !== null && { RoutingRules : serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRules ( input . RoutingRules , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfigurationRedirectTo = ( input , context ) : any => { return { ... ( input . Hostname !== undefined && input . Hostname !== null && { Hostname : input . Hostname } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , } ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRule = ( input , context ) : any => { return { ... ( input . Condition !== undefined && input . Condition !== null && { Condition : serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleCondition ( input . Condition , context ) , } ) , ... ( input . Redirect !== undefined && input . Redirect !== null && { Redirect : serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleRedirect ( input . Redirect , context ) , } ) , } ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleCondition = ( input , context ) : any => { return { ... ( input . HttpErrorCodeReturnedEquals !== undefined && input . HttpErrorCodeReturnedEquals !== null && { HttpErrorCodeReturnedEquals : input . HttpErrorCodeReturnedEquals } ) , ... ( input . KeyPrefixEquals !== undefined && input . KeyPrefixEquals !== null && { KeyPrefixEquals : input . KeyPrefixEquals } ) , } ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleRedirect = ( input , context ) : any => { return { ... ( input . Hostname !== undefined && input . Hostname !== null && { Hostname : input . Hostname } ) , ... ( input . HttpRedirectCode !== undefined && input . HttpRedirectCode !== null && { HttpRedirectCode : input . HttpRedirectCode } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . ReplaceKeyPrefixWith !== undefined && input . ReplaceKeyPrefixWith !== null && { ReplaceKeyPrefixWith : input . ReplaceKeyPrefixWith } ) , ... ( input . ReplaceKeyWith !== undefined && input . ReplaceKeyWith !== null && { ReplaceKeyWith : input . ReplaceKeyWith } ) , } ; } ; const serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRules = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRule ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsS3ObjectDetails = ( input , context ) : any => { return { ... ( input . ContentType !== undefined && input . ContentType !== null && { ContentType : input . ContentType } ) , ... ( input . ETag !== undefined && input . ETag !== null && { ETag : input . ETag } ) , ... ( input . LastModified !== undefined && input . LastModified !== null && { LastModified : input . LastModified } ) , ... ( input . SSEKMSKeyId !== undefined && input . SSEKMSKeyId !== null && { SSEKMSKeyId : input . SSEKMSKeyId } ) , ... ( input . ServerSideEncryption !== undefined && input . ServerSideEncryption !== null && { ServerSideEncryption : input . ServerSideEncryption } ) , ... ( input . VersionId !== undefined && input . VersionId !== null && { VersionId : input . VersionId } ) , } ; } ; const serializeAws_restJson1AwsSecretsManagerSecretDetails = ( input , context ) : any => { return { ... ( input . Deleted !== undefined && input . Deleted !== null && { Deleted : input . Deleted } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . KmsKeyId !== undefined && input . KmsKeyId !== null && { KmsKeyId : input . KmsKeyId } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . RotationEnabled !== undefined && input . RotationEnabled !== null && { RotationEnabled : input . RotationEnabled } ) , ... ( input . RotationLambdaArn !== undefined && input . RotationLambdaArn !== null && { RotationLambdaArn : input . RotationLambdaArn } ) , ... ( input . RotationOccurredWithinFrequency !== undefined && input . RotationOccurredWithinFrequency !== null && { RotationOccurredWithinFrequency : input . RotationOccurredWithinFrequency , } ) , ... ( input . RotationRules !== undefined && input . RotationRules !== null && { RotationRules : serializeAws_restJson1AwsSecretsManagerSecretRotationRules ( input . RotationRules , context ) , } ) , } ; } ; const serializeAws_restJson1AwsSecretsManagerSecretRotationRules = ( input , context ) : any => { return { ... ( input . AutomaticallyAfterDays !== undefined && input . AutomaticallyAfterDays !== null && { AutomaticallyAfterDays : input . AutomaticallyAfterDays } ) , } ; } ; const serializeAws_restJson1AwsSecurityFinding = ( input , context ) : any => { return { ... ( input . Action !== undefined && input . Action !== null && { Action : serializeAws_restJson1Action ( input . Action , context ) } ) , ... ( input . AwsAccountId !== undefined && input . AwsAccountId !== null && { AwsAccountId : input . AwsAccountId } ) , ... ( input . CompanyName !== undefined && input . CompanyName !== null && { CompanyName : input . CompanyName } ) , ... ( input . Compliance !== undefined && input . Compliance !== null && { Compliance : serializeAws_restJson1Compliance ( input . Compliance , context ) } ) , ... ( input . Confidence !== undefined && input . Confidence !== null && { Confidence : input . Confidence } ) , ... ( input . CreatedAt !== undefined && input . CreatedAt !== null && { CreatedAt : input . CreatedAt } ) , ... ( input . Criticality !== undefined && input . Criticality !== null && { Criticality : input . Criticality } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . FindingProviderFields !== undefined && input . FindingProviderFields !== null && { FindingProviderFields : serializeAws_restJson1FindingProviderFields ( input . FindingProviderFields , context ) , } ) , ... ( input . FirstObservedAt !== undefined && input . FirstObservedAt !== null && { FirstObservedAt : input . FirstObservedAt } ) , ... ( input . GeneratorId !== undefined && input . GeneratorId !== null && { GeneratorId : input . GeneratorId } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . LastObservedAt !== undefined && input . LastObservedAt !== null && { LastObservedAt : input . LastObservedAt } ) , ... ( input . Malware !== undefined && input . Malware !== null && { Malware : serializeAws_restJson1MalwareList ( input . Malware , context ) } ) , ... ( input . Network !== undefined && input . Network !== null && { Network : serializeAws_restJson1Network ( input . Network , context ) } ) , ... ( input . NetworkPath !== undefined && input . NetworkPath !== null && { NetworkPath : serializeAws_restJson1NetworkPathList ( input . NetworkPath , context ) } ) , ... ( input . Note !== undefined && input . Note !== null && { Note : serializeAws_restJson1Note ( input . Note , context ) } ) , ... ( input . PatchSummary !== undefined && input . PatchSummary !== null && { PatchSummary : serializeAws_restJson1PatchSummary ( input . PatchSummary , context ) } ) , ... ( input . Process !== undefined && input . Process !== null && { Process : serializeAws_restJson1ProcessDetails ( input . Process , context ) } ) , ... ( input . ProductArn !== undefined && input . ProductArn !== null && { ProductArn : input . ProductArn } ) , ... ( input . ProductFields !== undefined && input . ProductFields !== null && { ProductFields : serializeAws_restJson1FieldMap ( input . ProductFields , context ) } ) , ... ( input . ProductName !== undefined && input . ProductName !== null && { ProductName : input . ProductName } ) , ... ( input . RecordState !== undefined && input . RecordState !== null && { RecordState : input . RecordState } ) , ... ( input . Region !== undefined && input . Region !== null && { Region : input . Region } ) , ... ( input . RelatedFindings !== undefined && input . RelatedFindings !== null && { RelatedFindings : serializeAws_restJson1RelatedFindingList ( input . RelatedFindings , context ) , } ) , ... ( input . Remediation !== undefined && input . Remediation !== null && { Remediation : serializeAws_restJson1Remediation ( input . Remediation , context ) } ) , ... ( input . Resources !== undefined && input . Resources !== null && { Resources : serializeAws_restJson1ResourceList ( input . Resources , context ) } ) , ... ( input . SchemaVersion !== undefined && input . SchemaVersion !== null && { SchemaVersion : input . SchemaVersion } ) , ... ( input . Severity !== undefined && input . Severity !== null && { Severity : serializeAws_restJson1Severity ( input . Severity , context ) } ) , ... ( input . SourceUrl !== undefined && input . SourceUrl !== null && { SourceUrl : input . SourceUrl } ) , ... ( input . ThreatIntelIndicators !== undefined && input . ThreatIntelIndicators !== null && { ThreatIntelIndicators : serializeAws_restJson1ThreatIntelIndicatorList ( input . ThreatIntelIndicators , context ) , } ) , ... ( input . Title !== undefined && input . Title !== null && { Title : input . Title } ) , ... ( input . Types !== undefined && input . Types !== null && { Types : serializeAws_restJson1TypeList ( input . Types , context ) } ) , ... ( input . UpdatedAt !== undefined && input . UpdatedAt !== null && { UpdatedAt : input . UpdatedAt } ) , ... ( input . UserDefinedFields !== undefined && input . UserDefinedFields !== null && { UserDefinedFields : serializeAws_restJson1FieldMap ( input . UserDefinedFields , context ) , } ) , ... ( input . VerificationState !== undefined && input . VerificationState !== null && { VerificationState : input . VerificationState } ) , ... ( input . Vulnerabilities !== undefined && input . Vulnerabilities !== null && { Vulnerabilities : serializeAws_restJson1VulnerabilityList ( input . Vulnerabilities , context ) , } ) , ... ( input . Workflow !== undefined && input . Workflow !== null && { Workflow : serializeAws_restJson1Workflow ( input . Workflow , context ) } ) , ... ( input . WorkflowState !== undefined && input . WorkflowState !== null && { WorkflowState : input . WorkflowState } ) , } ; } ; const serializeAws_restJson1AwsSecurityFindingFilters = ( input , context ) : any => { return { ... ( input . AwsAccountId !== undefined && input . AwsAccountId !== null && { AwsAccountId : serializeAws_restJson1StringFilterList ( input . AwsAccountId , context ) , } ) , ... ( input . CompanyName !== undefined && input . CompanyName !== null && { CompanyName : serializeAws_restJson1StringFilterList ( input . CompanyName , context ) , } ) , ... ( input . ComplianceStatus !== undefined && input . ComplianceStatus !== null && { ComplianceStatus : serializeAws_restJson1StringFilterList ( input . ComplianceStatus , context ) , } ) , ... ( input . Confidence !== undefined && input . Confidence !== null && { Confidence : serializeAws_restJson1NumberFilterList ( input . Confidence , context ) } ) , ... ( input . CreatedAt !== undefined && input . CreatedAt !== null && { CreatedAt : serializeAws_restJson1DateFilterList ( input . CreatedAt , context ) } ) , ... ( input . Criticality !== undefined && input . Criticality !== null && { Criticality : serializeAws_restJson1NumberFilterList ( input . Criticality , context ) , } ) , ... ( input . Description !== undefined && input . Description !== null && { Description : serializeAws_restJson1StringFilterList ( input . Description , context ) , } ) , ... ( input . FindingProviderFieldsConfidence !== undefined && input . FindingProviderFieldsConfidence !== null && { FindingProviderFieldsConfidence : serializeAws_restJson1NumberFilterList ( input . FindingProviderFieldsConfidence , context ) , } ) , ... ( input . FindingProviderFieldsCriticality !== undefined && input . FindingProviderFieldsCriticality !== null && { FindingProviderFieldsCriticality : serializeAws_restJson1NumberFilterList ( input . FindingProviderFieldsCriticality , context ) , } ) , ... ( input . FindingProviderFieldsRelatedFindingsId !== undefined && input . FindingProviderFieldsRelatedFindingsId !== null && { FindingProviderFieldsRelatedFindingsId : serializeAws_restJson1StringFilterList ( input . FindingProviderFieldsRelatedFindingsId , context ) , } ) , ... ( input . FindingProviderFieldsRelatedFindingsProductArn !== undefined && input . FindingProviderFieldsRelatedFindingsProductArn !== null && { FindingProviderFieldsRelatedFindingsProductArn : serializeAws_restJson1StringFilterList ( input . FindingProviderFieldsRelatedFindingsProductArn , context ) , } ) , ... ( input . FindingProviderFieldsSeverityLabel !== undefined && input . FindingProviderFieldsSeverityLabel !== null && { FindingProviderFieldsSeverityLabel : serializeAws_restJson1StringFilterList ( input . FindingProviderFieldsSeverityLabel , context ) , } ) , ... ( input . FindingProviderFieldsSeverityOriginal !== undefined && input . FindingProviderFieldsSeverityOriginal !== null && { FindingProviderFieldsSeverityOriginal : serializeAws_restJson1StringFilterList ( input . FindingProviderFieldsSeverityOriginal , context ) , } ) , ... ( input . FindingProviderFieldsTypes !== undefined && input . FindingProviderFieldsTypes !== null && { FindingProviderFieldsTypes : serializeAws_restJson1StringFilterList ( input . FindingProviderFieldsTypes , context ) , } ) , ... ( input . FirstObservedAt !== undefined && input . FirstObservedAt !== null && { FirstObservedAt : serializeAws_restJson1DateFilterList ( input . FirstObservedAt , context ) , } ) , ... ( input . GeneratorId !== undefined && input . GeneratorId !== null && { GeneratorId : serializeAws_restJson1StringFilterList ( input . GeneratorId , context ) , } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : serializeAws_restJson1StringFilterList ( input . Id , context ) } ) , ... ( input . Keyword !== undefined && input . Keyword !== null && { Keyword : serializeAws_restJson1KeywordFilterList ( input . Keyword , context ) } ) , ... ( input . LastObservedAt !== undefined && input . LastObservedAt !== null && { LastObservedAt : serializeAws_restJson1DateFilterList ( input . LastObservedAt , context ) , } ) , ... ( input . MalwareName !== undefined && input . MalwareName !== null && { MalwareName : serializeAws_restJson1StringFilterList ( input . MalwareName , context ) , } ) , ... ( input . MalwarePath !== undefined && input . MalwarePath !== null && { MalwarePath : serializeAws_restJson1StringFilterList ( input . MalwarePath , context ) , } ) , ... ( input . MalwareState !== undefined && input . MalwareState !== null && { MalwareState : serializeAws_restJson1StringFilterList ( input . MalwareState , context ) , } ) , ... ( input . MalwareType !== undefined && input . MalwareType !== null && { MalwareType : serializeAws_restJson1StringFilterList ( input . MalwareType , context ) , } ) , ... ( input . NetworkDestinationDomain !== undefined && input . NetworkDestinationDomain !== null && { NetworkDestinationDomain : serializeAws_restJson1StringFilterList ( input . NetworkDestinationDomain , context ) , } ) , ... ( input . NetworkDestinationIpV4 !== undefined && input . NetworkDestinationIpV4 !== null && { NetworkDestinationIpV4 : serializeAws_restJson1IpFilterList ( input . NetworkDestinationIpV4 , context ) , } ) , ... ( input . NetworkDestinationIpV6 !== undefined && input . NetworkDestinationIpV6 !== null && { NetworkDestinationIpV6 : serializeAws_restJson1IpFilterList ( input . NetworkDestinationIpV6 , context ) , } ) , ... ( input . NetworkDestinationPort !== undefined && input . NetworkDestinationPort !== null && { NetworkDestinationPort : serializeAws_restJson1NumberFilterList ( input . NetworkDestinationPort , context ) , } ) , ... ( input . NetworkDirection !== undefined && input . NetworkDirection !== null && { NetworkDirection : serializeAws_restJson1StringFilterList ( input . NetworkDirection , context ) , } ) , ... ( input . NetworkProtocol !== undefined && input . NetworkProtocol !== null && { NetworkProtocol : serializeAws_restJson1StringFilterList ( input . NetworkProtocol , context ) , } ) , ... ( input . NetworkSourceDomain !== undefined && input . NetworkSourceDomain !== null && { NetworkSourceDomain : serializeAws_restJson1StringFilterList ( input . NetworkSourceDomain , context ) , } ) , ... ( input . NetworkSourceIpV4 !== undefined && input . NetworkSourceIpV4 !== null && { NetworkSourceIpV4 : serializeAws_restJson1IpFilterList ( input . NetworkSourceIpV4 , context ) , } ) , ... ( input . NetworkSourceIpV6 !== undefined && input . NetworkSourceIpV6 !== null && { NetworkSourceIpV6 : serializeAws_restJson1IpFilterList ( input . NetworkSourceIpV6 , context ) , } ) , ... ( input . NetworkSourceMac !== undefined && input . NetworkSourceMac !== null && { NetworkSourceMac : serializeAws_restJson1StringFilterList ( input . NetworkSourceMac , context ) , } ) , ... ( input . NetworkSourcePort !== undefined && input . NetworkSourcePort !== null && { NetworkSourcePort : serializeAws_restJson1NumberFilterList ( input . NetworkSourcePort , context ) , } ) , ... ( input . NoteText !== undefined && input . NoteText !== null && { NoteText : serializeAws_restJson1StringFilterList ( input . NoteText , context ) } ) , ... ( input . NoteUpdatedAt !== undefined && input . NoteUpdatedAt !== null && { NoteUpdatedAt : serializeAws_restJson1DateFilterList ( input . NoteUpdatedAt , context ) , } ) , ... ( input . NoteUpdatedBy !== undefined && input . NoteUpdatedBy !== null && { NoteUpdatedBy : serializeAws_restJson1StringFilterList ( input . NoteUpdatedBy , context ) , } ) , ... ( input . ProcessLaunchedAt !== undefined && input . ProcessLaunchedAt !== null && { ProcessLaunchedAt : serializeAws_restJson1DateFilterList ( input . ProcessLaunchedAt , context ) , } ) , ... ( input . ProcessName !== undefined && input . ProcessName !== null && { ProcessName : serializeAws_restJson1StringFilterList ( input . ProcessName , context ) , } ) , ... ( input . ProcessParentPid !== undefined && input . ProcessParentPid !== null && { ProcessParentPid : serializeAws_restJson1NumberFilterList ( input . ProcessParentPid , context ) , } ) , ... ( input . ProcessPath !== undefined && input . ProcessPath !== null && { ProcessPath : serializeAws_restJson1StringFilterList ( input . ProcessPath , context ) , } ) , ... ( input . ProcessPid !== undefined && input . ProcessPid !== null && { ProcessPid : serializeAws_restJson1NumberFilterList ( input . ProcessPid , context ) } ) , ... ( input . ProcessTerminatedAt !== undefined && input . ProcessTerminatedAt !== null && { ProcessTerminatedAt : serializeAws_restJson1DateFilterList ( input . ProcessTerminatedAt , context ) , } ) , ... ( input . ProductArn !== undefined && input . ProductArn !== null && { ProductArn : serializeAws_restJson1StringFilterList ( input . ProductArn , context ) } ) , ... ( input . ProductFields !== undefined && input . ProductFields !== null && { ProductFields : serializeAws_restJson1MapFilterList ( input . ProductFields , context ) , } ) , ... ( input . ProductName !== undefined && input . ProductName !== null && { ProductName : serializeAws_restJson1StringFilterList ( input . ProductName , context ) , } ) , ... ( input . RecommendationText !== undefined && input . RecommendationText !== null && { RecommendationText : serializeAws_restJson1StringFilterList ( input . RecommendationText , context ) , } ) , ... ( input . RecordState !== undefined && input . RecordState !== null && { RecordState : serializeAws_restJson1StringFilterList ( input . RecordState , context ) , } ) , ... ( input . Region !== undefined && input . Region !== null && { Region : serializeAws_restJson1StringFilterList ( input . Region , context ) } ) , ... ( input . RelatedFindingsId !== undefined && input . RelatedFindingsId !== null && { RelatedFindingsId : serializeAws_restJson1StringFilterList ( input . RelatedFindingsId , context ) , } ) , ... ( input . RelatedFindingsProductArn !== undefined && input . RelatedFindingsProductArn !== null && { RelatedFindingsProductArn : serializeAws_restJson1StringFilterList ( input . RelatedFindingsProductArn , context ) , } ) , ... ( input . ResourceAwsEc2InstanceIamInstanceProfileArn !== undefined && input . ResourceAwsEc2InstanceIamInstanceProfileArn !== null && { ResourceAwsEc2InstanceIamInstanceProfileArn : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceIamInstanceProfileArn , context ) , } ) , ... ( input . ResourceAwsEc2InstanceImageId !== undefined && input . ResourceAwsEc2InstanceImageId !== null && { ResourceAwsEc2InstanceImageId : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceImageId , context ) , } ) , ... ( input . ResourceAwsEc2InstanceIpV4Addresses !== undefined && input . ResourceAwsEc2InstanceIpV4Addresses !== null && { ResourceAwsEc2InstanceIpV4Addresses : serializeAws_restJson1IpFilterList ( input . ResourceAwsEc2InstanceIpV4Addresses , context ) , } ) , ... ( input . ResourceAwsEc2InstanceIpV6Addresses !== undefined && input . ResourceAwsEc2InstanceIpV6Addresses !== null && { ResourceAwsEc2InstanceIpV6Addresses : serializeAws_restJson1IpFilterList ( input . ResourceAwsEc2InstanceIpV6Addresses , context ) , } ) , ... ( input . ResourceAwsEc2InstanceKeyName !== undefined && input . ResourceAwsEc2InstanceKeyName !== null && { ResourceAwsEc2InstanceKeyName : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceKeyName , context ) , } ) , ... ( input . ResourceAwsEc2InstanceLaunchedAt !== undefined && input . ResourceAwsEc2InstanceLaunchedAt !== null && { ResourceAwsEc2InstanceLaunchedAt : serializeAws_restJson1DateFilterList ( input . ResourceAwsEc2InstanceLaunchedAt , context ) , } ) , ... ( input . ResourceAwsEc2InstanceSubnetId !== undefined && input . ResourceAwsEc2InstanceSubnetId !== null && { ResourceAwsEc2InstanceSubnetId : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceSubnetId , context ) , } ) , ... ( input . ResourceAwsEc2InstanceType !== undefined && input . ResourceAwsEc2InstanceType !== null && { ResourceAwsEc2InstanceType : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceType , context ) , } ) , ... ( input . ResourceAwsEc2InstanceVpcId !== undefined && input . ResourceAwsEc2InstanceVpcId !== null && { ResourceAwsEc2InstanceVpcId : serializeAws_restJson1StringFilterList ( input . ResourceAwsEc2InstanceVpcId , context ) , } ) , ... ( input . ResourceAwsIamAccessKeyCreatedAt !== undefined && input . ResourceAwsIamAccessKeyCreatedAt !== null && { ResourceAwsIamAccessKeyCreatedAt : serializeAws_restJson1DateFilterList ( input . ResourceAwsIamAccessKeyCreatedAt , context ) , } ) , ... ( input . ResourceAwsIamAccessKeyPrincipalName !== undefined && input . ResourceAwsIamAccessKeyPrincipalName !== null && { ResourceAwsIamAccessKeyPrincipalName : serializeAws_restJson1StringFilterList ( input . ResourceAwsIamAccessKeyPrincipalName , context ) , } ) , ... ( input . ResourceAwsIamAccessKeyStatus !== undefined && input . ResourceAwsIamAccessKeyStatus !== null && { ResourceAwsIamAccessKeyStatus : serializeAws_restJson1StringFilterList ( input . ResourceAwsIamAccessKeyStatus , context ) , } ) , ... ( input . ResourceAwsIamAccessKeyUserName !== undefined && input . ResourceAwsIamAccessKeyUserName !== null && { ResourceAwsIamAccessKeyUserName : serializeAws_restJson1StringFilterList ( input . ResourceAwsIamAccessKeyUserName , context ) , } ) , ... ( input . ResourceAwsIamUserUserName !== undefined && input . ResourceAwsIamUserUserName !== null && { ResourceAwsIamUserUserName : serializeAws_restJson1StringFilterList ( input . ResourceAwsIamUserUserName , context ) , } ) , ... ( input . ResourceAwsS3BucketOwnerId !== undefined && input . ResourceAwsS3BucketOwnerId !== null && { ResourceAwsS3BucketOwnerId : serializeAws_restJson1StringFilterList ( input . ResourceAwsS3BucketOwnerId , context ) , } ) , ... ( input . ResourceAwsS3BucketOwnerName !== undefined && input . ResourceAwsS3BucketOwnerName !== null && { ResourceAwsS3BucketOwnerName : serializeAws_restJson1StringFilterList ( input . ResourceAwsS3BucketOwnerName , context ) , } ) , ... ( input . ResourceContainerImageId !== undefined && input . ResourceContainerImageId !== null && { ResourceContainerImageId : serializeAws_restJson1StringFilterList ( input . ResourceContainerImageId , context ) , } ) , ... ( input . ResourceContainerImageName !== undefined && input . ResourceContainerImageName !== null && { ResourceContainerImageName : serializeAws_restJson1StringFilterList ( input . ResourceContainerImageName , context ) , } ) , ... ( input . ResourceContainerLaunchedAt !== undefined && input . ResourceContainerLaunchedAt !== null && { ResourceContainerLaunchedAt : serializeAws_restJson1DateFilterList ( input . ResourceContainerLaunchedAt , context ) , } ) , ... ( input . ResourceContainerName !== undefined && input . ResourceContainerName !== null && { ResourceContainerName : serializeAws_restJson1StringFilterList ( input . ResourceContainerName , context ) , } ) , ... ( input . ResourceDetailsOther !== undefined && input . ResourceDetailsOther !== null && { ResourceDetailsOther : serializeAws_restJson1MapFilterList ( input . ResourceDetailsOther , context ) , } ) , ... ( input . ResourceId !== undefined && input . ResourceId !== null && { ResourceId : serializeAws_restJson1StringFilterList ( input . ResourceId , context ) } ) , ... ( input . ResourcePartition !== undefined && input . ResourcePartition !== null && { ResourcePartition : serializeAws_restJson1StringFilterList ( input . ResourcePartition , context ) , } ) , ... ( input . ResourceRegion !== undefined && input . ResourceRegion !== null && { ResourceRegion : serializeAws_restJson1StringFilterList ( input . ResourceRegion , context ) , } ) , ... ( input . ResourceTags !== undefined && input . ResourceTags !== null && { ResourceTags : serializeAws_restJson1MapFilterList ( input . ResourceTags , context ) , } ) , ... ( input . ResourceType !== undefined && input . ResourceType !== null && { ResourceType : serializeAws_restJson1StringFilterList ( input . ResourceType , context ) , } ) , ... ( input . SeverityLabel !== undefined && input . SeverityLabel !== null && { SeverityLabel : serializeAws_restJson1StringFilterList ( input . SeverityLabel , context ) , } ) , ... ( input . SeverityNormalized !== undefined && input . SeverityNormalized !== null && { SeverityNormalized : serializeAws_restJson1NumberFilterList ( input . SeverityNormalized , context ) , } ) , ... ( input . SeverityProduct !== undefined && input . SeverityProduct !== null && { SeverityProduct : serializeAws_restJson1NumberFilterList ( input . SeverityProduct , context ) , } ) , ... ( input . SourceUrl !== undefined && input . SourceUrl !== null && { SourceUrl : serializeAws_restJson1StringFilterList ( input . SourceUrl , context ) } ) , ... ( input . ThreatIntelIndicatorCategory !== undefined && input . ThreatIntelIndicatorCategory !== null && { ThreatIntelIndicatorCategory : serializeAws_restJson1StringFilterList ( input . ThreatIntelIndicatorCategory , context ) , } ) , ... ( input . ThreatIntelIndicatorLastObservedAt !== undefined && input . ThreatIntelIndicatorLastObservedAt !== null && { ThreatIntelIndicatorLastObservedAt : serializeAws_restJson1DateFilterList ( input . ThreatIntelIndicatorLastObservedAt , context ) , } ) , ... ( input . ThreatIntelIndicatorSource !== undefined && input . ThreatIntelIndicatorSource !== null && { ThreatIntelIndicatorSource : serializeAws_restJson1StringFilterList ( input . ThreatIntelIndicatorSource , context ) , } ) , ... ( input . ThreatIntelIndicatorSourceUrl !== undefined && input . ThreatIntelIndicatorSourceUrl !== null && { ThreatIntelIndicatorSourceUrl : serializeAws_restJson1StringFilterList ( input . ThreatIntelIndicatorSourceUrl , context ) , } ) , ... ( input . ThreatIntelIndicatorType !== undefined && input . ThreatIntelIndicatorType !== null && { ThreatIntelIndicatorType : serializeAws_restJson1StringFilterList ( input . ThreatIntelIndicatorType , context ) , } ) , ... ( input . ThreatIntelIndicatorValue !== undefined && input . ThreatIntelIndicatorValue !== null && { ThreatIntelIndicatorValue : serializeAws_restJson1StringFilterList ( input . ThreatIntelIndicatorValue , context ) , } ) , ... ( input . Title !== undefined && input . Title !== null && { Title : serializeAws_restJson1StringFilterList ( input . Title , context ) } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : serializeAws_restJson1StringFilterList ( input . Type , context ) } ) , ... ( input . UpdatedAt !== undefined && input . UpdatedAt !== null && { UpdatedAt : serializeAws_restJson1DateFilterList ( input . UpdatedAt , context ) } ) , ... ( input . UserDefinedFields !== undefined && input . UserDefinedFields !== null && { UserDefinedFields : serializeAws_restJson1MapFilterList ( input . UserDefinedFields , context ) , } ) , ... ( input . VerificationState !== undefined && input . VerificationState !== null && { VerificationState : serializeAws_restJson1StringFilterList ( input . VerificationState , context ) , } ) , ... ( input . WorkflowState !== undefined && input . WorkflowState !== null && { WorkflowState : serializeAws_restJson1StringFilterList ( input . WorkflowState , context ) , } ) , ... ( input . WorkflowStatus !== undefined && input . WorkflowStatus !== null && { WorkflowStatus : serializeAws_restJson1StringFilterList ( input . WorkflowStatus , context ) , } ) , } ; } ; const serializeAws_restJson1AwsSecurityFindingIdentifier = ( input , context ) : any => { return { ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . ProductArn !== undefined && input . ProductArn !== null && { ProductArn : input . ProductArn } ) , } ; } ; const serializeAws_restJson1AwsSecurityFindingIdentifierList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsSecurityFindingIdentifier ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsSnsTopicDetails = ( input , context ) : any => { return { ... ( input . KmsMasterKeyId !== undefined && input . KmsMasterKeyId !== null && { KmsMasterKeyId : input . KmsMasterKeyId } ) , ... ( input . Owner !== undefined && input . Owner !== null && { Owner : input . Owner } ) , ... ( input . Subscription !== undefined && input . Subscription !== null && { Subscription : serializeAws_restJson1AwsSnsTopicSubscriptionList ( input . Subscription , context ) , } ) , ... ( input . TopicName !== undefined && input . TopicName !== null && { TopicName : input . TopicName } ) , } ; } ; const serializeAws_restJson1AwsSnsTopicSubscription = ( input , context ) : any => { return { ... ( input . Endpoint !== undefined && input . Endpoint !== null && { Endpoint : input . Endpoint } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , } ; } ; const serializeAws_restJson1AwsSnsTopicSubscriptionList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsSnsTopicSubscription ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsSqsQueueDetails = ( input , context ) : any => { return { ... ( input . DeadLetterTargetArn !== undefined && input . DeadLetterTargetArn !== null && { DeadLetterTargetArn : input . DeadLetterTargetArn } ) , ... ( input . KmsDataKeyReusePeriodSeconds !== undefined && input . KmsDataKeyReusePeriodSeconds !== null && { KmsDataKeyReusePeriodSeconds : input . KmsDataKeyReusePeriodSeconds , } ) , ... ( input . KmsMasterKeyId !== undefined && input . KmsMasterKeyId !== null && { KmsMasterKeyId : input . KmsMasterKeyId } ) , ... ( input . QueueName !== undefined && input . QueueName !== null && { QueueName : input . QueueName } ) , } ; } ; const serializeAws_restJson1AwsSsmComplianceSummary = ( input , context ) : any => { return { ... ( input . ComplianceType !== undefined && input . ComplianceType !== null && { ComplianceType : input . ComplianceType } ) , ... ( input . CompliantCriticalCount !== undefined && input . CompliantCriticalCount !== null && { CompliantCriticalCount : input . CompliantCriticalCount } ) , ... ( input . CompliantHighCount !== undefined && input . CompliantHighCount !== null && { CompliantHighCount : input . CompliantHighCount } ) , ... ( input . CompliantInformationalCount !== undefined && input . CompliantInformationalCount !== null && { CompliantInformationalCount : input . CompliantInformationalCount } ) , ... ( input . CompliantLowCount !== undefined && input . CompliantLowCount !== null && { CompliantLowCount : input . CompliantLowCount } ) , ... ( input . CompliantMediumCount !== undefined && input . CompliantMediumCount !== null && { CompliantMediumCount : input . CompliantMediumCount } ) , ... ( input . CompliantUnspecifiedCount !== undefined && input . CompliantUnspecifiedCount !== null && { CompliantUnspecifiedCount : input . CompliantUnspecifiedCount } ) , ... ( input . ExecutionType !== undefined && input . ExecutionType !== null && { ExecutionType : input . ExecutionType } ) , ... ( input . NonCompliantCriticalCount !== undefined && input . NonCompliantCriticalCount !== null && { NonCompliantCriticalCount : input . NonCompliantCriticalCount } ) , ... ( input . NonCompliantHighCount !== undefined && input . NonCompliantHighCount !== null && { NonCompliantHighCount : input . NonCompliantHighCount } ) , ... ( input . NonCompliantInformationalCount !== undefined && input . NonCompliantInformationalCount !== null && { NonCompliantInformationalCount : input . NonCompliantInformationalCount , } ) , ... ( input . NonCompliantLowCount !== undefined && input . NonCompliantLowCount !== null && { NonCompliantLowCount : input . NonCompliantLowCount } ) , ... ( input . NonCompliantMediumCount !== undefined && input . NonCompliantMediumCount !== null && { NonCompliantMediumCount : input . NonCompliantMediumCount } ) , ... ( input . NonCompliantUnspecifiedCount !== undefined && input . NonCompliantUnspecifiedCount !== null && { NonCompliantUnspecifiedCount : input . NonCompliantUnspecifiedCount , } ) , ... ( input . OverallSeverity !== undefined && input . OverallSeverity !== null && { OverallSeverity : input . OverallSeverity } ) , ... ( input . PatchBaselineId !== undefined && input . PatchBaselineId !== null && { PatchBaselineId : input . PatchBaselineId } ) , ... ( input . PatchGroup !== undefined && input . PatchGroup !== null && { PatchGroup : input . PatchGroup } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1AwsSsmPatch = ( input , context ) : any => { return { ... ( input . ComplianceSummary !== undefined && input . ComplianceSummary !== null && { ComplianceSummary : serializeAws_restJson1AwsSsmComplianceSummary ( input . ComplianceSummary , context ) , } ) , } ; } ; const serializeAws_restJson1AwsSsmPatchComplianceDetails = ( input , context ) : any => { return { ... ( input . Patch !== undefined && input . Patch !== null && { Patch : serializeAws_restJson1AwsSsmPatch ( input . Patch , context ) } ) , } ; } ; const serializeAws_restJson1AwsWafRateBasedRuleDetails = ( input , context ) : any => { return { ... ( input . MatchPredicates !== undefined && input . MatchPredicates !== null && { MatchPredicates : serializeAws_restJson1AwsWafRateBasedRuleMatchPredicateList ( input . MatchPredicates , context ) , } ) , ... ( input . MetricName !== undefined && input . MetricName !== null && { MetricName : input . MetricName } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . RateKey !== undefined && input . RateKey !== null && { RateKey : input . RateKey } ) , ... ( input . RateLimit !== undefined && input . RateLimit !== null && { RateLimit : input . RateLimit } ) , ... ( input . RuleId !== undefined && input . RuleId !== null && { RuleId : input . RuleId } ) , } ; } ; const serializeAws_restJson1AwsWafRateBasedRuleMatchPredicate = ( input , context ) : any => { return { ... ( input . DataId !== undefined && input . DataId !== null && { DataId : input . DataId } ) , ... ( input . Negated !== undefined && input . Negated !== null && { Negated : input . Negated } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsWafRateBasedRuleMatchPredicateList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsWafRateBasedRuleMatchPredicate ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsWafRegionalRateBasedRuleDetails = ( input , context ) : any => { return { ... ( input . MatchPredicates !== undefined && input . MatchPredicates !== null && { MatchPredicates : serializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicateList ( input . MatchPredicates , context ) , } ) , ... ( input . MetricName !== undefined && input . MetricName !== null && { MetricName : input . MetricName } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . RateKey !== undefined && input . RateKey !== null && { RateKey : input . RateKey } ) , ... ( input . RateLimit !== undefined && input . RateLimit !== null && { RateLimit : input . RateLimit } ) , ... ( input . RuleId !== undefined && input . RuleId !== null && { RuleId : input . RuleId } ) , } ; } ; const serializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicate = ( input , context ) : any => { return { ... ( input . DataId !== undefined && input . DataId !== null && { DataId : input . DataId } ) , ... ( input . Negated !== undefined && input . Negated !== null && { Negated : input . Negated } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicateList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicate ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsWafWebAclDetails = ( input , context ) : any => { return { ... ( input . DefaultAction !== undefined && input . DefaultAction !== null && { DefaultAction : input . DefaultAction } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Rules !== undefined && input . Rules !== null && { Rules : serializeAws_restJson1AwsWafWebAclRuleList ( input . Rules , context ) } ) , ... ( input . WebAclId !== undefined && input . WebAclId !== null && { WebAclId : input . WebAclId } ) , } ; } ; const serializeAws_restJson1AwsWafWebAclRule = ( input , context ) : any => { return { ... ( input . Action !== undefined && input . Action !== null && { Action : serializeAws_restJson1WafAction ( input . Action , context ) } ) , ... ( input . ExcludedRules !== undefined && input . ExcludedRules !== null && { ExcludedRules : serializeAws_restJson1WafExcludedRuleList ( input . ExcludedRules , context ) , } ) , ... ( input . OverrideAction !== undefined && input . OverrideAction !== null && { OverrideAction : serializeAws_restJson1WafOverrideAction ( input . OverrideAction , context ) , } ) , ... ( input . Priority !== undefined && input . Priority !== null && { Priority : input . Priority } ) , ... ( input . RuleId !== undefined && input . RuleId !== null && { RuleId : input . RuleId } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1AwsWafWebAclRuleList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsWafWebAclRule ( entry , context ) ; } ) ; } ; const serializeAws_restJson1AwsXrayEncryptionConfigDetails = ( input , context ) : any => { return { ... ( input . KeyId !== undefined && input . KeyId !== null && { KeyId : input . KeyId } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1BatchImportFindingsRequestFindingList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1AwsSecurityFinding ( entry , context ) ; } ) ; } ; const serializeAws_restJson1Cell = ( input , context ) : any => { return { ... ( input . CellReference !== undefined && input . CellReference !== null && { CellReference : input . CellReference } ) , ... ( input . Column !== undefined && input . Column !== null && { Column : input . Column } ) , ... ( input . ColumnName !== undefined && input . ColumnName !== null && { ColumnName : input . ColumnName } ) , ... ( input . Row !== undefined && input . Row !== null && { Row : input . Row } ) , } ; } ; const serializeAws_restJson1Cells = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Cell ( entry , context ) ; } ) ; } ; const serializeAws_restJson1CidrBlockAssociation = ( input , context ) : any => { return { ... ( input . AssociationId !== undefined && input . AssociationId !== null && { AssociationId : input . AssociationId } ) , ... ( input . CidrBlock !== undefined && input . CidrBlock !== null && { CidrBlock : input . CidrBlock } ) , ... ( input . CidrBlockState !== undefined && input . CidrBlockState !== null && { CidrBlockState : input . CidrBlockState } ) , } ; } ; const serializeAws_restJson1CidrBlockAssociationList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1CidrBlockAssociation ( entry , context ) ; } ) ; } ; const serializeAws_restJson1City = ( input , context ) : any => { return { ... ( input . CityName !== undefined && input . CityName !== null && { CityName : input . CityName } ) , } ; } ; const serializeAws_restJson1ClassificationResult = ( input , context ) : any => { return { ... ( input . AdditionalOccurrences !== undefined && input . AdditionalOccurrences !== null && { AdditionalOccurrences : input . AdditionalOccurrences } ) , ... ( input . CustomDataIdentifiers !== undefined && input . CustomDataIdentifiers !== null && { CustomDataIdentifiers : serializeAws_restJson1CustomDataIdentifiersResult ( input . CustomDataIdentifiers , context ) , } ) , ... ( input . MimeType !== undefined && input . MimeType !== null && { MimeType : input . MimeType } ) , ... ( input . SensitiveData !== undefined && input . SensitiveData !== null && { SensitiveData : serializeAws_restJson1SensitiveDataResultList ( input . SensitiveData , context ) , } ) , ... ( input . SizeClassified !== undefined && input . SizeClassified !== null && { SizeClassified : input . SizeClassified } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : serializeAws_restJson1ClassificationStatus ( input . Status , context ) } ) , } ; } ; const serializeAws_restJson1ClassificationStatus = ( input , context ) : any => { return { ... ( input . Code !== undefined && input . Code !== null && { Code : input . Code } ) , ... ( input . Reason !== undefined && input . Reason !== null && { Reason : input . Reason } ) , } ; } ; const serializeAws_restJson1Compliance = ( input , context ) : any => { return { ... ( input . RelatedRequirements !== undefined && input . RelatedRequirements !== null && { RelatedRequirements : serializeAws_restJson1RelatedRequirementsList ( input . RelatedRequirements , context ) , } ) , ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , ... ( input . StatusReasons !== undefined && input . StatusReasons !== null && { StatusReasons : serializeAws_restJson1StatusReasonsList ( input . StatusReasons , context ) , } ) , } ; } ; const serializeAws_restJson1ContainerDetails = ( input , context ) : any => { return { ... ( input . ImageId !== undefined && input . ImageId !== null && { ImageId : input . ImageId } ) , ... ( input . ImageName !== undefined && input . ImageName !== null && { ImageName : input . ImageName } ) , ... ( input . LaunchedAt !== undefined && input . LaunchedAt !== null && { LaunchedAt : input . LaunchedAt } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , } ; } ; const serializeAws_restJson1Country = ( input , context ) : any => { return { ... ( input . CountryCode !== undefined && input . CountryCode !== null && { CountryCode : input . CountryCode } ) , ... ( input . CountryName !== undefined && input . CountryName !== null && { CountryName : input . CountryName } ) , } ; } ; const serializeAws_restJson1CustomDataIdentifiersDetections = ( input , context ) : any => { return { ... ( input . Arn !== undefined && input . Arn !== null && { Arn : input . Arn } ) , ... ( input . Count !== undefined && input . Count !== null && { Count : input . Count } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Occurrences !== undefined && input . Occurrences !== null && { Occurrences : serializeAws_restJson1Occurrences ( input . Occurrences , context ) } ) , } ; } ; const serializeAws_restJson1CustomDataIdentifiersDetectionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1CustomDataIdentifiersDetections ( entry , context ) ; } ) ; } ; const serializeAws_restJson1CustomDataIdentifiersResult = ( input , context ) : any => { return { ... ( input . Detections !== undefined && input . Detections !== null && { Detections : serializeAws_restJson1CustomDataIdentifiersDetectionsList ( input . Detections , context ) , } ) , ... ( input . TotalCount !== undefined && input . TotalCount !== null && { TotalCount : input . TotalCount } ) , } ; } ; const serializeAws_restJson1Cvss = ( input , context ) : any => { return { ... ( input . Adjustments !== undefined && input . Adjustments !== null && { Adjustments : serializeAws_restJson1AdjustmentList ( input . Adjustments , context ) } ) , ... ( input . BaseScore !== undefined && input . BaseScore !== null && { BaseScore : __serializeFloat ( input . BaseScore ) } ) , ... ( input . BaseVector !== undefined && input . BaseVector !== null && { BaseVector : input . BaseVector } ) , ... ( input . Source !== undefined && input . Source !== null && { Source : input . Source } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1CvssList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Cvss ( entry , context ) ; } ) ; } ; const serializeAws_restJson1DataClassificationDetails = ( input , context ) : any => { return { ... ( input . DetailedResultsLocation !== undefined && input . DetailedResultsLocation !== null && { DetailedResultsLocation : input . DetailedResultsLocation } ) , ... ( input . Result !== undefined && input . Result !== null && { Result : serializeAws_restJson1ClassificationResult ( input . Result , context ) } ) , } ; } ; const serializeAws_restJson1DateFilter = ( input , context ) : any => { return { ... ( input . DateRange !== undefined && input . DateRange !== null && { DateRange : serializeAws_restJson1DateRange ( input . DateRange , context ) } ) , ... ( input . End !== undefined && input . End !== null && { End : input . End } ) , ... ( input . Start !== undefined && input . Start !== null && { Start : input . Start } ) , } ; } ; const serializeAws_restJson1DateFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1DateFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1DateRange = ( input , context ) : any => { return { ... ( input . Unit !== undefined && input . Unit !== null && { Unit : input . Unit } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1DnsRequestAction = ( input , context ) : any => { return { ... ( input . Blocked !== undefined && input . Blocked !== null && { Blocked : input . Blocked } ) , ... ( input . Domain !== undefined && input . Domain !== null && { Domain : input . Domain } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , } ; } ; const serializeAws_restJson1FieldMap = ( input , context ) : any => { return Object . entries ( input ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : value , } ; } , { } ) ; } ; const serializeAws_restJson1FindingProviderFields = ( input , context ) : any => { return { ... ( input . Confidence !== undefined && input . Confidence !== null && { Confidence : input . Confidence } ) , ... ( input . Criticality !== undefined && input . Criticality !== null && { Criticality : input . Criticality } ) , ... ( input . RelatedFindings !== undefined && input . RelatedFindings !== null && { RelatedFindings : serializeAws_restJson1RelatedFindingList ( input . RelatedFindings , context ) , } ) , ... ( input . Severity !== undefined && input . Severity !== null && { Severity : serializeAws_restJson1FindingProviderSeverity ( input . Severity , context ) } ) , ... ( input . Types !== undefined && input . Types !== null && { Types : serializeAws_restJson1TypeList ( input . Types , context ) } ) , } ; } ; const serializeAws_restJson1FindingProviderSeverity = ( input , context ) : any => { return { ... ( input . Label !== undefined && input . Label !== null && { Label : input . Label } ) , ... ( input . Original !== undefined && input . Original !== null && { Original : input . Original } ) , } ; } ; const serializeAws_restJson1FirewallPolicyDetails = ( input , context ) : any => { return { ... ( input . StatefulRuleGroupReferences !== undefined && input . StatefulRuleGroupReferences !== null && { StatefulRuleGroupReferences : serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList ( input . StatefulRuleGroupReferences , context ) , } ) , ... ( input . StatelessCustomActions !== undefined && input . StatelessCustomActions !== null && { StatelessCustomActions : serializeAws_restJson1FirewallPolicyStatelessCustomActionsList ( input . StatelessCustomActions , context ) , } ) , ... ( input . StatelessDefaultActions !== undefined && input . StatelessDefaultActions !== null && { StatelessDefaultActions : serializeAws_restJson1NonEmptyStringList ( input . StatelessDefaultActions , context ) , } ) , ... ( input . StatelessFragmentDefaultActions !== undefined && input . StatelessFragmentDefaultActions !== null && { StatelessFragmentDefaultActions : serializeAws_restJson1NonEmptyStringList ( input . StatelessFragmentDefaultActions , context ) , } ) , ... ( input . StatelessRuleGroupReferences !== undefined && input . StatelessRuleGroupReferences !== null && { StatelessRuleGroupReferences : serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList ( input . StatelessRuleGroupReferences , context ) , } ) , } ; } ; const serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails = ( input , context ) : any => { return { ... ( input . ResourceArn !== undefined && input . ResourceArn !== null && { ResourceArn : input . ResourceArn } ) , } ; } ; const serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails = ( input , context ) : any => { return { ... ( input . ActionDefinition !== undefined && input . ActionDefinition !== null && { ActionDefinition : serializeAws_restJson1StatelessCustomActionDefinition ( input . ActionDefinition , context ) , } ) , ... ( input . ActionName !== undefined && input . ActionName !== null && { ActionName : input . ActionName } ) , } ; } ; const serializeAws_restJson1FirewallPolicyStatelessCustomActionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails = ( input , context ) : any => { return { ... ( input . Priority !== undefined && input . Priority !== null && { Priority : input . Priority } ) , ... ( input . ResourceArn !== undefined && input . ResourceArn !== null && { ResourceArn : input . ResourceArn } ) , } ; } ; const serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1GeoLocation = ( input , context ) : any => { return { ... ( input . Lat !== undefined && input . Lat !== null && { Lat : __serializeFloat ( input . Lat ) } ) , ... ( input . Lon !== undefined && input . Lon !== null && { Lon : __serializeFloat ( input . Lon ) } ) , } ; } ; const serializeAws_restJson1IcmpTypeCode = ( input , context ) : any => { return { ... ( input . Code !== undefined && input . Code !== null && { Code : input . Code } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1IntegerList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1IpFilter = ( input , context ) : any => { return { ... ( input . Cidr !== undefined && input . Cidr !== null && { Cidr : input . Cidr } ) , } ; } ; const serializeAws_restJson1IpFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1IpFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1IpOrganizationDetails = ( input , context ) : any => { return { ... ( input . Asn !== undefined && input . Asn !== null && { Asn : input . Asn } ) , ... ( input . AsnOrg !== undefined && input . AsnOrg !== null && { AsnOrg : input . AsnOrg } ) , ... ( input . Isp !== undefined && input . Isp !== null && { Isp : input . Isp } ) , ... ( input . Org !== undefined && input . Org !== null && { Org : input . Org } ) , } ; } ; const serializeAws_restJson1Ipv6CidrBlockAssociation = ( input , context ) : any => { return { ... ( input . AssociationId !== undefined && input . AssociationId !== null && { AssociationId : input . AssociationId } ) , ... ( input . CidrBlockState !== undefined && input . CidrBlockState !== null && { CidrBlockState : input . CidrBlockState } ) , ... ( input . Ipv6CidrBlock !== undefined && input . Ipv6CidrBlock !== null && { Ipv6CidrBlock : input . Ipv6CidrBlock } ) , } ; } ; const serializeAws_restJson1Ipv6CidrBlockAssociationList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Ipv6CidrBlockAssociation ( entry , context ) ; } ) ; } ; const serializeAws_restJson1KeywordFilter = ( input , context ) : any => { return { ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1KeywordFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1KeywordFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1LoadBalancerState = ( input , context ) : any => { return { ... ( input . Code !== undefined && input . Code !== null && { Code : input . Code } ) , ... ( input . Reason !== undefined && input . Reason !== null && { Reason : input . Reason } ) , } ; } ; const serializeAws_restJson1Malware = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . State !== undefined && input . State !== null && { State : input . State } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1MalwareList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Malware ( entry , context ) ; } ) ; } ; const serializeAws_restJson1MapFilter = ( input , context ) : any => { return { ... ( input . Comparison !== undefined && input . Comparison !== null && { Comparison : input . Comparison } ) , ... ( input . Key !== undefined && input . Key !== null && { Key : input . Key } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1MapFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1MapFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1Network = ( input , context ) : any => { return { ... ( input . DestinationDomain !== undefined && input . DestinationDomain !== null && { DestinationDomain : input . DestinationDomain } ) , ... ( input . DestinationIpV4 !== undefined && input . DestinationIpV4 !== null && { DestinationIpV4 : input . DestinationIpV4 } ) , ... ( input . DestinationIpV6 !== undefined && input . DestinationIpV6 !== null && { DestinationIpV6 : input . DestinationIpV6 } ) , ... ( input . DestinationPort !== undefined && input . DestinationPort !== null && { DestinationPort : input . DestinationPort } ) , ... ( input . Direction !== undefined && input . Direction !== null && { Direction : input . Direction } ) , ... ( input . OpenPortRange !== undefined && input . OpenPortRange !== null && { OpenPortRange : serializeAws_restJson1PortRange ( input . OpenPortRange , context ) } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . SourceDomain !== undefined && input . SourceDomain !== null && { SourceDomain : input . SourceDomain } ) , ... ( input . SourceIpV4 !== undefined && input . SourceIpV4 !== null && { SourceIpV4 : input . SourceIpV4 } ) , ... ( input . SourceIpV6 !== undefined && input . SourceIpV6 !== null && { SourceIpV6 : input . SourceIpV6 } ) , ... ( input . SourceMac !== undefined && input . SourceMac !== null && { SourceMac : input . SourceMac } ) , ... ( input . SourcePort !== undefined && input . SourcePort !== null && { SourcePort : input . SourcePort } ) , } ; } ; const serializeAws_restJson1NetworkConnectionAction = ( input , context ) : any => { return { ... ( input . Blocked !== undefined && input . Blocked !== null && { Blocked : input . Blocked } ) , ... ( input . ConnectionDirection !== undefined && input . ConnectionDirection !== null && { ConnectionDirection : input . ConnectionDirection } ) , ... ( input . LocalPortDetails !== undefined && input . LocalPortDetails !== null && { LocalPortDetails : serializeAws_restJson1ActionLocalPortDetails ( input . LocalPortDetails , context ) , } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . RemoteIpDetails !== undefined && input . RemoteIpDetails !== null && { RemoteIpDetails : serializeAws_restJson1ActionRemoteIpDetails ( input . RemoteIpDetails , context ) , } ) , ... ( input . RemotePortDetails !== undefined && input . RemotePortDetails !== null && { RemotePortDetails : serializeAws_restJson1ActionRemotePortDetails ( input . RemotePortDetails , context ) , } ) , } ; } ; const serializeAws_restJson1NetworkHeader = ( input , context ) : any => { return { ... ( input . Destination !== undefined && input . Destination !== null && { Destination : serializeAws_restJson1NetworkPathComponentDetails ( input . Destination , context ) , } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . Source !== undefined && input . Source !== null && { Source : serializeAws_restJson1NetworkPathComponentDetails ( input . Source , context ) } ) , } ; } ; const serializeAws_restJson1NetworkPathComponent = ( input , context ) : any => { return { ... ( input . ComponentId !== undefined && input . ComponentId !== null && { ComponentId : input . ComponentId } ) , ... ( input . ComponentType !== undefined && input . ComponentType !== null && { ComponentType : input . ComponentType } ) , ... ( input . Egress !== undefined && input . Egress !== null && { Egress : serializeAws_restJson1NetworkHeader ( input . Egress , context ) } ) , ... ( input . Ingress !== undefined && input . Ingress !== null && { Ingress : serializeAws_restJson1NetworkHeader ( input . Ingress , context ) } ) , } ; } ; const serializeAws_restJson1NetworkPathComponentDetails = ( input , context ) : any => { return { ... ( input . Address !== undefined && input . Address !== null && { Address : serializeAws_restJson1StringList ( input . Address , context ) } ) , ... ( input . PortRanges !== undefined && input . PortRanges !== null && { PortRanges : serializeAws_restJson1PortRangeList ( input . PortRanges , context ) } ) , } ; } ; const serializeAws_restJson1NetworkPathList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1NetworkPathComponent ( entry , context ) ; } ) ; } ; const serializeAws_restJson1NonEmptyStringList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1Note = ( input , context ) : any => { return { ... ( input . Text !== undefined && input . Text !== null && { Text : input . Text } ) , ... ( input . UpdatedAt !== undefined && input . UpdatedAt !== null && { UpdatedAt : input . UpdatedAt } ) , ... ( input . UpdatedBy !== undefined && input . UpdatedBy !== null && { UpdatedBy : input . UpdatedBy } ) , } ; } ; const serializeAws_restJson1NoteUpdate = ( input , context ) : any => { return { ... ( input . Text !== undefined && input . Text !== null && { Text : input . Text } ) , ... ( input . UpdatedBy !== undefined && input . UpdatedBy !== null && { UpdatedBy : input . UpdatedBy } ) , } ; } ; const serializeAws_restJson1NumberFilter = ( input , context ) : any => { return { ... ( input . Eq !== undefined && input . Eq !== null && { Eq : __serializeFloat ( input . Eq ) } ) , ... ( input . Gte !== undefined && input . Gte !== null && { Gte : __serializeFloat ( input . Gte ) } ) , ... ( input . Lte !== undefined && input . Lte !== null && { Lte : __serializeFloat ( input . Lte ) } ) , } ; } ; const serializeAws_restJson1NumberFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1NumberFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1Occurrences = ( input , context ) : any => { return { ... ( input . Cells !== undefined && input . Cells !== null && { Cells : serializeAws_restJson1Cells ( input . Cells , context ) } ) , ... ( input . LineRanges !== undefined && input . LineRanges !== null && { LineRanges : serializeAws_restJson1Ranges ( input . LineRanges , context ) } ) , ... ( input . OffsetRanges !== undefined && input . OffsetRanges !== null && { OffsetRanges : serializeAws_restJson1Ranges ( input . OffsetRanges , context ) } ) , ... ( input . Pages !== undefined && input . Pages !== null && { Pages : serializeAws_restJson1Pages ( input . Pages , context ) } ) , ... ( input . Records !== undefined && input . Records !== null && { Records : serializeAws_restJson1Records ( input . Records , context ) } ) , } ; } ; const serializeAws_restJson1Page = ( input , context ) : any => { return { ... ( input . LineRange !== undefined && input . LineRange !== null && { LineRange : serializeAws_restJson1Range ( input . LineRange , context ) } ) , ... ( input . OffsetRange !== undefined && input . OffsetRange !== null && { OffsetRange : serializeAws_restJson1Range ( input . OffsetRange , context ) } ) , ... ( input . PageNumber !== undefined && input . PageNumber !== null && { PageNumber : input . PageNumber } ) , } ; } ; const serializeAws_restJson1Pages = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Page ( entry , context ) ; } ) ; } ; const serializeAws_restJson1PatchSummary = ( input , context ) : any => { return { ... ( input . FailedCount !== undefined && input . FailedCount !== null && { FailedCount : input . FailedCount } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . InstalledCount !== undefined && input . InstalledCount !== null && { InstalledCount : input . InstalledCount } ) , ... ( input . InstalledOtherCount !== undefined && input . InstalledOtherCount !== null && { InstalledOtherCount : input . InstalledOtherCount } ) , ... ( input . InstalledPendingReboot !== undefined && input . InstalledPendingReboot !== null && { InstalledPendingReboot : input . InstalledPendingReboot } ) , ... ( input . InstalledRejectedCount !== undefined && input . InstalledRejectedCount !== null && { InstalledRejectedCount : input . InstalledRejectedCount } ) , ... ( input . MissingCount !== undefined && input . MissingCount !== null && { MissingCount : input . MissingCount } ) , ... ( input . Operation !== undefined && input . Operation !== null && { Operation : input . Operation } ) , ... ( input . OperationEndTime !== undefined && input . OperationEndTime !== null && { OperationEndTime : input . OperationEndTime } ) , ... ( input . OperationStartTime !== undefined && input . OperationStartTime !== null && { OperationStartTime : input . OperationStartTime } ) , ... ( input . RebootOption !== undefined && input . RebootOption !== null && { RebootOption : input . RebootOption } ) , } ; } ; const serializeAws_restJson1PortProbeAction = ( input , context ) : any => { return { ... ( input . Blocked !== undefined && input . Blocked !== null && { Blocked : input . Blocked } ) , ... ( input . PortProbeDetails !== undefined && input . PortProbeDetails !== null && { PortProbeDetails : serializeAws_restJson1PortProbeDetailList ( input . PortProbeDetails , context ) , } ) , } ; } ; const serializeAws_restJson1PortProbeDetail = ( input , context ) : any => { return { ... ( input . LocalIpDetails !== undefined && input . LocalIpDetails !== null && { LocalIpDetails : serializeAws_restJson1ActionLocalIpDetails ( input . LocalIpDetails , context ) , } ) , ... ( input . LocalPortDetails !== undefined && input . LocalPortDetails !== null && { LocalPortDetails : serializeAws_restJson1ActionLocalPortDetails ( input . LocalPortDetails , context ) , } ) , ... ( input . RemoteIpDetails !== undefined && input . RemoteIpDetails !== null && { RemoteIpDetails : serializeAws_restJson1ActionRemoteIpDetails ( input . RemoteIpDetails , context ) , } ) , } ; } ; const serializeAws_restJson1PortProbeDetailList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1PortProbeDetail ( entry , context ) ; } ) ; } ; const serializeAws_restJson1PortRange = ( input , context ) : any => { return { ... ( input . Begin !== undefined && input . Begin !== null && { Begin : input . Begin } ) , ... ( input . End !== undefined && input . End !== null && { End : input . End } ) , } ; } ; const serializeAws_restJson1PortRangeFromTo = ( input , context ) : any => { return { ... ( input . From !== undefined && input . From !== null && { From : input . From } ) , ... ( input . To !== undefined && input . To !== null && { To : input . To } ) , } ; } ; const serializeAws_restJson1PortRangeList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1PortRange ( entry , context ) ; } ) ; } ; const serializeAws_restJson1ProcessDetails = ( input , context ) : any => { return { ... ( input . LaunchedAt !== undefined && input . LaunchedAt !== null && { LaunchedAt : input . LaunchedAt } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . ParentPid !== undefined && input . ParentPid !== null && { ParentPid : input . ParentPid } ) , ... ( input . Path !== undefined && input . Path !== null && { Path : input . Path } ) , ... ( input . Pid !== undefined && input . Pid !== null && { Pid : input . Pid } ) , ... ( input . TerminatedAt !== undefined && input . TerminatedAt !== null && { TerminatedAt : input . TerminatedAt } ) , } ; } ; const serializeAws_restJson1Range = ( input , context ) : any => { return { ... ( input . End !== undefined && input . End !== null && { End : input . End } ) , ... ( input . Start !== undefined && input . Start !== null && { Start : input . Start } ) , ... ( input . StartColumn !== undefined && input . StartColumn !== null && { StartColumn : input . StartColumn } ) , } ; } ; const serializeAws_restJson1Ranges = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Range ( entry , context ) ; } ) ; } ; const serializeAws_restJson1Recommendation = ( input , context ) : any => { return { ... ( input . Text !== undefined && input . Text !== null && { Text : input . Text } ) , ... ( input . Url !== undefined && input . Url !== null && { Url : input . Url } ) , } ; } ; const serializeAws_restJson1_Record = ( input , context ) : any => { return { ... ( input . JsonPath !== undefined && input . JsonPath !== null && { JsonPath : input . JsonPath } ) , ... ( input . RecordIndex !== undefined && input . RecordIndex !== null && { RecordIndex : input . RecordIndex } ) , } ; } ; const serializeAws_restJson1Records = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1_Record ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RelatedFinding = ( input , context ) : any => { return { ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . ProductArn !== undefined && input . ProductArn !== null && { ProductArn : input . ProductArn } ) , } ; } ; const serializeAws_restJson1RelatedFindingList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RelatedFinding ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RelatedRequirementsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1Remediation = ( input , context ) : any => { return { ... ( input . Recommendation !== undefined && input . Recommendation !== null && { Recommendation : serializeAws_restJson1Recommendation ( input . Recommendation , context ) , } ) , } ; } ; const serializeAws_restJson1Resource = ( input , context ) : any => { return { ... ( input . DataClassification !== undefined && input . DataClassification !== null && { DataClassification : serializeAws_restJson1DataClassificationDetails ( input . DataClassification , context ) , } ) , ... ( input . Details !== undefined && input . Details !== null && { Details : serializeAws_restJson1ResourceDetails ( input . Details , context ) } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . Partition !== undefined && input . Partition !== null && { Partition : input . Partition } ) , ... ( input . Region !== undefined && input . Region !== null && { Region : input . Region } ) , ... ( input . ResourceRole !== undefined && input . ResourceRole !== null && { ResourceRole : input . ResourceRole } ) , ... ( input . Tags !== undefined && input . Tags !== null && { Tags : serializeAws_restJson1FieldMap ( input . Tags , context ) } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1ResourceDetails = ( input , context ) : any => { return { ... ( input . AwsApiGatewayRestApi !== undefined && input . AwsApiGatewayRestApi !== null && { AwsApiGatewayRestApi : serializeAws_restJson1AwsApiGatewayRestApiDetails ( input . AwsApiGatewayRestApi , context ) , } ) , ... ( input . AwsApiGatewayStage !== undefined && input . AwsApiGatewayStage !== null && { AwsApiGatewayStage : serializeAws_restJson1AwsApiGatewayStageDetails ( input . AwsApiGatewayStage , context ) , } ) , ... ( input . AwsApiGatewayV2Api !== undefined && input . AwsApiGatewayV2Api !== null && { AwsApiGatewayV2Api : serializeAws_restJson1AwsApiGatewayV2ApiDetails ( input . AwsApiGatewayV2Api , context ) , } ) , ... ( input . AwsApiGatewayV2Stage !== undefined && input . AwsApiGatewayV2Stage !== null && { AwsApiGatewayV2Stage : serializeAws_restJson1AwsApiGatewayV2StageDetails ( input . AwsApiGatewayV2Stage , context ) , } ) , ... ( input . AwsAutoScalingAutoScalingGroup !== undefined && input . AwsAutoScalingAutoScalingGroup !== null && { AwsAutoScalingAutoScalingGroup : serializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails ( input . AwsAutoScalingAutoScalingGroup , context ) , } ) , ... ( input . AwsAutoScalingLaunchConfiguration !== undefined && input . AwsAutoScalingLaunchConfiguration !== null && { AwsAutoScalingLaunchConfiguration : serializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails ( input . AwsAutoScalingLaunchConfiguration , context ) , } ) , ... ( input . AwsCertificateManagerCertificate !== undefined && input . AwsCertificateManagerCertificate !== null && { AwsCertificateManagerCertificate : serializeAws_restJson1AwsCertificateManagerCertificateDetails ( input . AwsCertificateManagerCertificate , context ) , } ) , ... ( input . AwsCloudFrontDistribution !== undefined && input . AwsCloudFrontDistribution !== null && { AwsCloudFrontDistribution : serializeAws_restJson1AwsCloudFrontDistributionDetails ( input . AwsCloudFrontDistribution , context ) , } ) , ... ( input . AwsCloudTrailTrail !== undefined && input . AwsCloudTrailTrail !== null && { AwsCloudTrailTrail : serializeAws_restJson1AwsCloudTrailTrailDetails ( input . AwsCloudTrailTrail , context ) , } ) , ... ( input . AwsCodeBuildProject !== undefined && input . AwsCodeBuildProject !== null && { AwsCodeBuildProject : serializeAws_restJson1AwsCodeBuildProjectDetails ( input . AwsCodeBuildProject , context ) , } ) , ... ( input . AwsDynamoDbTable !== undefined && input . AwsDynamoDbTable !== null && { AwsDynamoDbTable : serializeAws_restJson1AwsDynamoDbTableDetails ( input . AwsDynamoDbTable , context ) , } ) , ... ( input . AwsEc2Eip !== undefined && input . AwsEc2Eip !== null && { AwsEc2Eip : serializeAws_restJson1AwsEc2EipDetails ( input . AwsEc2Eip , context ) } ) , ... ( input . AwsEc2Instance !== undefined && input . AwsEc2Instance !== null && { AwsEc2Instance : serializeAws_restJson1AwsEc2InstanceDetails ( input . AwsEc2Instance , context ) , } ) , ... ( input . AwsEc2NetworkAcl !== undefined && input . AwsEc2NetworkAcl !== null && { AwsEc2NetworkAcl : serializeAws_restJson1AwsEc2NetworkAclDetails ( input . AwsEc2NetworkAcl , context ) , } ) , ... ( input . AwsEc2NetworkInterface !== undefined && input . AwsEc2NetworkInterface !== null && { AwsEc2NetworkInterface : serializeAws_restJson1AwsEc2NetworkInterfaceDetails ( input . AwsEc2NetworkInterface , context ) , } ) , ... ( input . AwsEc2SecurityGroup !== undefined && input . AwsEc2SecurityGroup !== null && { AwsEc2SecurityGroup : serializeAws_restJson1AwsEc2SecurityGroupDetails ( input . AwsEc2SecurityGroup , context ) , } ) , ... ( input . AwsEc2Subnet !== undefined && input . AwsEc2Subnet !== null && { AwsEc2Subnet : serializeAws_restJson1AwsEc2SubnetDetails ( input . AwsEc2Subnet , context ) , } ) , ... ( input . AwsEc2Volume !== undefined && input . AwsEc2Volume !== null && { AwsEc2Volume : serializeAws_restJson1AwsEc2VolumeDetails ( input . AwsEc2Volume , context ) , } ) , ... ( input . AwsEc2Vpc !== undefined && input . AwsEc2Vpc !== null && { AwsEc2Vpc : serializeAws_restJson1AwsEc2VpcDetails ( input . AwsEc2Vpc , context ) } ) , ... ( input . AwsEc2VpcEndpointService !== undefined && input . AwsEc2VpcEndpointService !== null && { AwsEc2VpcEndpointService : serializeAws_restJson1AwsEc2VpcEndpointServiceDetails ( input . AwsEc2VpcEndpointService , context ) , } ) , ... ( input . AwsEc2VpnConnection !== undefined && input . AwsEc2VpnConnection !== null && { AwsEc2VpnConnection : serializeAws_restJson1AwsEc2VpnConnectionDetails ( input . AwsEc2VpnConnection , context ) , } ) , ... ( input . AwsEcrContainerImage !== undefined && input . AwsEcrContainerImage !== null && { AwsEcrContainerImage : serializeAws_restJson1AwsEcrContainerImageDetails ( input . AwsEcrContainerImage , context ) , } ) , ... ( input . AwsEcrRepository !== undefined && input . AwsEcrRepository !== null && { AwsEcrRepository : serializeAws_restJson1AwsEcrRepositoryDetails ( input . AwsEcrRepository , context ) , } ) , ... ( input . AwsEcsCluster !== undefined && input . AwsEcsCluster !== null && { AwsEcsCluster : serializeAws_restJson1AwsEcsClusterDetails ( input . AwsEcsCluster , context ) , } ) , ... ( input . AwsEcsService !== undefined && input . AwsEcsService !== null && { AwsEcsService : serializeAws_restJson1AwsEcsServiceDetails ( input . AwsEcsService , context ) , } ) , ... ( input . AwsEcsTaskDefinition !== undefined && input . AwsEcsTaskDefinition !== null && { AwsEcsTaskDefinition : serializeAws_restJson1AwsEcsTaskDefinitionDetails ( input . AwsEcsTaskDefinition , context ) , } ) , ... ( input . AwsEksCluster !== undefined && input . AwsEksCluster !== null && { AwsEksCluster : serializeAws_restJson1AwsEksClusterDetails ( input . AwsEksCluster , context ) , } ) , ... ( input . AwsElasticBeanstalkEnvironment !== undefined && input . AwsElasticBeanstalkEnvironment !== null && { AwsElasticBeanstalkEnvironment : serializeAws_restJson1AwsElasticBeanstalkEnvironmentDetails ( input . AwsElasticBeanstalkEnvironment , context ) , } ) , ... ( input . AwsElasticsearchDomain !== undefined && input . AwsElasticsearchDomain !== null && { AwsElasticsearchDomain : serializeAws_restJson1AwsElasticsearchDomainDetails ( input . AwsElasticsearchDomain , context ) , } ) , ... ( input . AwsElbLoadBalancer !== undefined && input . AwsElbLoadBalancer !== null && { AwsElbLoadBalancer : serializeAws_restJson1AwsElbLoadBalancerDetails ( input . AwsElbLoadBalancer , context ) , } ) , ... ( input . AwsElbv2LoadBalancer !== undefined && input . AwsElbv2LoadBalancer !== null && { AwsElbv2LoadBalancer : serializeAws_restJson1AwsElbv2LoadBalancerDetails ( input . AwsElbv2LoadBalancer , context ) , } ) , ... ( input . AwsIamAccessKey !== undefined && input . AwsIamAccessKey !== null && { AwsIamAccessKey : serializeAws_restJson1AwsIamAccessKeyDetails ( input . AwsIamAccessKey , context ) , } ) , ... ( input . AwsIamGroup !== undefined && input . AwsIamGroup !== null && { AwsIamGroup : serializeAws_restJson1AwsIamGroupDetails ( input . AwsIamGroup , context ) , } ) , ... ( input . AwsIamPolicy !== undefined && input . AwsIamPolicy !== null && { AwsIamPolicy : serializeAws_restJson1AwsIamPolicyDetails ( input . AwsIamPolicy , context ) , } ) , ... ( input . AwsIamRole !== undefined && input . AwsIamRole !== null && { AwsIamRole : serializeAws_restJson1AwsIamRoleDetails ( input . AwsIamRole , context ) } ) , ... ( input . AwsIamUser !== undefined && input . AwsIamUser !== null && { AwsIamUser : serializeAws_restJson1AwsIamUserDetails ( input . AwsIamUser , context ) } ) , ... ( input . AwsKmsKey !== undefined && input . AwsKmsKey !== null && { AwsKmsKey : serializeAws_restJson1AwsKmsKeyDetails ( input . AwsKmsKey , context ) } ) , ... ( input . AwsLambdaFunction !== undefined && input . AwsLambdaFunction !== null && { AwsLambdaFunction : serializeAws_restJson1AwsLambdaFunctionDetails ( input . AwsLambdaFunction , context ) , } ) , ... ( input . AwsLambdaLayerVersion !== undefined && input . AwsLambdaLayerVersion !== null && { AwsLambdaLayerVersion : serializeAws_restJson1AwsLambdaLayerVersionDetails ( input . AwsLambdaLayerVersion , context ) , } ) , ... ( input . AwsNetworkFirewallFirewall !== undefined && input . AwsNetworkFirewallFirewall !== null && { AwsNetworkFirewallFirewall : serializeAws_restJson1AwsNetworkFirewallFirewallDetails ( input . AwsNetworkFirewallFirewall , context ) , } ) , ... ( input . AwsNetworkFirewallFirewallPolicy !== undefined && input . AwsNetworkFirewallFirewallPolicy !== null && { AwsNetworkFirewallFirewallPolicy : serializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails ( input . AwsNetworkFirewallFirewallPolicy , context ) , } ) , ... ( input . AwsNetworkFirewallRuleGroup !== undefined && input . AwsNetworkFirewallRuleGroup !== null && { AwsNetworkFirewallRuleGroup : serializeAws_restJson1AwsNetworkFirewallRuleGroupDetails ( input . AwsNetworkFirewallRuleGroup , context ) , } ) , ... ( input . AwsOpenSearchServiceDomain !== undefined && input . AwsOpenSearchServiceDomain !== null && { AwsOpenSearchServiceDomain : serializeAws_restJson1AwsOpenSearchServiceDomainDetails ( input . AwsOpenSearchServiceDomain , context ) , } ) , ... ( input . AwsRdsDbCluster !== undefined && input . AwsRdsDbCluster !== null && { AwsRdsDbCluster : serializeAws_restJson1AwsRdsDbClusterDetails ( input . AwsRdsDbCluster , context ) , } ) , ... ( input . AwsRdsDbClusterSnapshot !== undefined && input . AwsRdsDbClusterSnapshot !== null && { AwsRdsDbClusterSnapshot : serializeAws_restJson1AwsRdsDbClusterSnapshotDetails ( input . AwsRdsDbClusterSnapshot , context ) , } ) , ... ( input . AwsRdsDbInstance !== undefined && input . AwsRdsDbInstance !== null && { AwsRdsDbInstance : serializeAws_restJson1AwsRdsDbInstanceDetails ( input . AwsRdsDbInstance , context ) , } ) , ... ( input . AwsRdsDbSnapshot !== undefined && input . AwsRdsDbSnapshot !== null && { AwsRdsDbSnapshot : serializeAws_restJson1AwsRdsDbSnapshotDetails ( input . AwsRdsDbSnapshot , context ) , } ) , ... ( input . AwsRdsEventSubscription !== undefined && input . AwsRdsEventSubscription !== null && { AwsRdsEventSubscription : serializeAws_restJson1AwsRdsEventSubscriptionDetails ( input . AwsRdsEventSubscription , context ) , } ) , ... ( input . AwsRedshiftCluster !== undefined && input . AwsRedshiftCluster !== null && { AwsRedshiftCluster : serializeAws_restJson1AwsRedshiftClusterDetails ( input . AwsRedshiftCluster , context ) , } ) , ... ( input . AwsS3AccountPublicAccessBlock !== undefined && input . AwsS3AccountPublicAccessBlock !== null && { AwsS3AccountPublicAccessBlock : serializeAws_restJson1AwsS3AccountPublicAccessBlockDetails ( input . AwsS3AccountPublicAccessBlock , context ) , } ) , ... ( input . AwsS3Bucket !== undefined && input . AwsS3Bucket !== null && { AwsS3Bucket : serializeAws_restJson1AwsS3BucketDetails ( input . AwsS3Bucket , context ) , } ) , ... ( input . AwsS3Object !== undefined && input . AwsS3Object !== null && { AwsS3Object : serializeAws_restJson1AwsS3ObjectDetails ( input . AwsS3Object , context ) , } ) , ... ( input . AwsSecretsManagerSecret !== undefined && input . AwsSecretsManagerSecret !== null && { AwsSecretsManagerSecret : serializeAws_restJson1AwsSecretsManagerSecretDetails ( input . AwsSecretsManagerSecret , context ) , } ) , ... ( input . AwsSnsTopic !== undefined && input . AwsSnsTopic !== null && { AwsSnsTopic : serializeAws_restJson1AwsSnsTopicDetails ( input . AwsSnsTopic , context ) , } ) , ... ( input . AwsSqsQueue !== undefined && input . AwsSqsQueue !== null && { AwsSqsQueue : serializeAws_restJson1AwsSqsQueueDetails ( input . AwsSqsQueue , context ) , } ) , ... ( input . AwsSsmPatchCompliance !== undefined && input . AwsSsmPatchCompliance !== null && { AwsSsmPatchCompliance : serializeAws_restJson1AwsSsmPatchComplianceDetails ( input . AwsSsmPatchCompliance , context ) , } ) , ... ( input . AwsWafRateBasedRule !== undefined && input . AwsWafRateBasedRule !== null && { AwsWafRateBasedRule : serializeAws_restJson1AwsWafRateBasedRuleDetails ( input . AwsWafRateBasedRule , context ) , } ) , ... ( input . AwsWafRegionalRateBasedRule !== undefined && input . AwsWafRegionalRateBasedRule !== null && { AwsWafRegionalRateBasedRule : serializeAws_restJson1AwsWafRegionalRateBasedRuleDetails ( input . AwsWafRegionalRateBasedRule , context ) , } ) , ... ( input . AwsWafWebAcl !== undefined && input . AwsWafWebAcl !== null && { AwsWafWebAcl : serializeAws_restJson1AwsWafWebAclDetails ( input . AwsWafWebAcl , context ) , } ) , ... ( input . AwsXrayEncryptionConfig !== undefined && input . AwsXrayEncryptionConfig !== null && { AwsXrayEncryptionConfig : serializeAws_restJson1AwsXrayEncryptionConfigDetails ( input . AwsXrayEncryptionConfig , context ) , } ) , ... ( input . Container !== undefined && input . Container !== null && { Container : serializeAws_restJson1ContainerDetails ( input . Container , context ) } ) , ... ( input . Other !== undefined && input . Other !== null && { Other : serializeAws_restJson1FieldMap ( input . Other , context ) } ) , } ; } ; const serializeAws_restJson1ResourceList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Resource ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupDetails = ( input , context ) : any => { return { ... ( input . RuleVariables !== undefined && input . RuleVariables !== null && { RuleVariables : serializeAws_restJson1RuleGroupVariables ( input . RuleVariables , context ) , } ) , ... ( input . RulesSource !== undefined && input . RulesSource !== null && { RulesSource : serializeAws_restJson1RuleGroupSource ( input . RulesSource , context ) } ) , } ; } ; const serializeAws_restJson1RuleGroupSource = ( input , context ) : any => { return { ... ( input . RulesSourceList !== undefined && input . RulesSourceList !== null && { RulesSourceList : serializeAws_restJson1RuleGroupSourceListDetails ( input . RulesSourceList , context ) , } ) , ... ( input . RulesString !== undefined && input . RulesString !== null && { RulesString : input . RulesString } ) , ... ( input . StatefulRules !== undefined && input . StatefulRules !== null && { StatefulRules : serializeAws_restJson1RuleGroupSourceStatefulRulesList ( input . StatefulRules , context ) , } ) , ... ( input . StatelessRulesAndCustomActions !== undefined && input . StatelessRulesAndCustomActions !== null && { StatelessRulesAndCustomActions : serializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails ( input . StatelessRulesAndCustomActions , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceCustomActionsDetails = ( input , context ) : any => { return { ... ( input . ActionDefinition !== undefined && input . ActionDefinition !== null && { ActionDefinition : serializeAws_restJson1StatelessCustomActionDefinition ( input . ActionDefinition , context ) , } ) , ... ( input . ActionName !== undefined && input . ActionName !== null && { ActionName : input . ActionName } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceCustomActionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceCustomActionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceListDetails = ( input , context ) : any => { return { ... ( input . GeneratedRulesType !== undefined && input . GeneratedRulesType !== null && { GeneratedRulesType : input . GeneratedRulesType } ) , ... ( input . TargetTypes !== undefined && input . TargetTypes !== null && { TargetTypes : serializeAws_restJson1NonEmptyStringList ( input . TargetTypes , context ) , } ) , ... ( input . Targets !== undefined && input . Targets !== null && { Targets : serializeAws_restJson1NonEmptyStringList ( input . Targets , context ) } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesDetails = ( input , context ) : any => { return { ... ( input . Action !== undefined && input . Action !== null && { Action : input . Action } ) , ... ( input . Header !== undefined && input . Header !== null && { Header : serializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails ( input . Header , context ) , } ) , ... ( input . RuleOptions !== undefined && input . RuleOptions !== null && { RuleOptions : serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList ( input . RuleOptions , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails = ( input , context ) : any => { return { ... ( input . Destination !== undefined && input . Destination !== null && { Destination : input . Destination } ) , ... ( input . DestinationPort !== undefined && input . DestinationPort !== null && { DestinationPort : input . DestinationPort } ) , ... ( input . Direction !== undefined && input . Direction !== null && { Direction : input . Direction } ) , ... ( input . Protocol !== undefined && input . Protocol !== null && { Protocol : input . Protocol } ) , ... ( input . Source !== undefined && input . Source !== null && { Source : input . Source } ) , ... ( input . SourcePort !== undefined && input . SourcePort !== null && { SourcePort : input . SourcePort } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatefulRulesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails = ( input , context ) : any => { return { ... ( input . Keyword !== undefined && input . Keyword !== null && { Keyword : input . Keyword } ) , ... ( input . Settings !== undefined && input . Settings !== null && { Settings : serializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList ( input . Settings , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleDefinition = ( input , context ) : any => { return { ... ( input . Actions !== undefined && input . Actions !== null && { Actions : serializeAws_restJson1NonEmptyStringList ( input . Actions , context ) } ) , ... ( input . MatchAttributes !== undefined && input . MatchAttributes !== null && { MatchAttributes : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes ( input . MatchAttributes , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes = ( input , context ) : any => { return { ... ( input . DestinationPorts !== undefined && input . DestinationPorts !== null && { DestinationPorts : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList ( input . DestinationPorts , context ) , } ) , ... ( input . Destinations !== undefined && input . Destinations !== null && { Destinations : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList ( input . Destinations , context ) , } ) , ... ( input . Protocols !== undefined && input . Protocols !== null && { Protocols : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList ( input . Protocols , context ) , } ) , ... ( input . SourcePorts !== undefined && input . SourcePorts !== null && { SourcePorts : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList ( input . SourcePorts , context ) , } ) , ... ( input . Sources !== undefined && input . Sources !== null && { Sources : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList ( input . Sources , context ) , } ) , ... ( input . TcpFlags !== undefined && input . TcpFlags !== null && { TcpFlags : serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList ( input . TcpFlags , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts = ( input , context ) : any => { return { ... ( input . FromPort !== undefined && input . FromPort !== null && { FromPort : input . FromPort } ) , ... ( input . ToPort !== undefined && input . ToPort !== null && { ToPort : input . ToPort } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations = ( input , context ) : any => { return { ... ( input . AddressDefinition !== undefined && input . AddressDefinition !== null && { AddressDefinition : input . AddressDefinition } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts = ( input , context ) : any => { return { ... ( input . FromPort !== undefined && input . FromPort !== null && { FromPort : input . FromPort } ) , ... ( input . ToPort !== undefined && input . ToPort !== null && { ToPort : input . ToPort } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources = ( input , context ) : any => { return { ... ( input . AddressDefinition !== undefined && input . AddressDefinition !== null && { AddressDefinition : input . AddressDefinition } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags = ( input , context ) : any => { return { ... ( input . Flags !== undefined && input . Flags !== null && { Flags : serializeAws_restJson1NonEmptyStringList ( input . Flags , context ) } ) , ... ( input . Masks !== undefined && input . Masks !== null && { Masks : serializeAws_restJson1NonEmptyStringList ( input . Masks , context ) } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails = ( input , context ) : any => { return { ... ( input . CustomActions !== undefined && input . CustomActions !== null && { CustomActions : serializeAws_restJson1RuleGroupSourceCustomActionsList ( input . CustomActions , context ) , } ) , ... ( input . StatelessRules !== undefined && input . StatelessRules !== null && { StatelessRules : serializeAws_restJson1RuleGroupSourceStatelessRulesList ( input . StatelessRules , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRulesDetails = ( input , context ) : any => { return { ... ( input . Priority !== undefined && input . Priority !== null && { Priority : input . Priority } ) , ... ( input . RuleDefinition !== undefined && input . RuleDefinition !== null && { RuleDefinition : serializeAws_restJson1RuleGroupSourceStatelessRuleDefinition ( input . RuleDefinition , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupSourceStatelessRulesList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1RuleGroupSourceStatelessRulesDetails ( entry , context ) ; } ) ; } ; const serializeAws_restJson1RuleGroupVariables = ( input , context ) : any => { return { ... ( input . IpSets !== undefined && input . IpSets !== null && { IpSets : serializeAws_restJson1RuleGroupVariablesIpSetsDetails ( input . IpSets , context ) , } ) , ... ( input . PortSets !== undefined && input . PortSets !== null && { PortSets : serializeAws_restJson1RuleGroupVariablesPortSetsDetails ( input . PortSets , context ) , } ) , } ; } ; const serializeAws_restJson1RuleGroupVariablesIpSetsDetails = ( input , context ) : any => { return { ... ( input . Definition !== undefined && input . Definition !== null && { Definition : serializeAws_restJson1NonEmptyStringList ( input . Definition , context ) } ) , } ; } ; const serializeAws_restJson1RuleGroupVariablesPortSetsDetails = ( input , context ) : any => { return { ... ( input . Definition !== undefined && input . Definition !== null && { Definition : serializeAws_restJson1NonEmptyStringList ( input . Definition , context ) } ) , } ; } ; const serializeAws_restJson1SecurityGroups = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1SensitiveDataDetections = ( input , context ) : any => { return { ... ( input . Count !== undefined && input . Count !== null && { Count : input . Count } ) , ... ( input . Occurrences !== undefined && input . Occurrences !== null && { Occurrences : serializeAws_restJson1Occurrences ( input . Occurrences , context ) } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1SensitiveDataDetectionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1SensitiveDataDetections ( entry , context ) ; } ) ; } ; const serializeAws_restJson1SensitiveDataResult = ( input , context ) : any => { return { ... ( input . Category !== undefined && input . Category !== null && { Category : input . Category } ) , ... ( input . Detections !== undefined && input . Detections !== null && { Detections : serializeAws_restJson1SensitiveDataDetectionsList ( input . Detections , context ) , } ) , ... ( input . TotalCount !== undefined && input . TotalCount !== null && { TotalCount : input . TotalCount } ) , } ; } ; const serializeAws_restJson1SensitiveDataResultList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1SensitiveDataResult ( entry , context ) ; } ) ; } ; const serializeAws_restJson1Severity = ( input , context ) : any => { return { ... ( input . Label !== undefined && input . Label !== null && { Label : input . Label } ) , ... ( input . Normalized !== undefined && input . Normalized !== null && { Normalized : input . Normalized } ) , ... ( input . Original !== undefined && input . Original !== null && { Original : input . Original } ) , ... ( input . Product !== undefined && input . Product !== null && { Product : __serializeFloat ( input . Product ) } ) , } ; } ; const serializeAws_restJson1SeverityUpdate = ( input , context ) : any => { return { ... ( input . Label !== undefined && input . Label !== null && { Label : input . Label } ) , ... ( input . Normalized !== undefined && input . Normalized !== null && { Normalized : input . Normalized } ) , ... ( input . Product !== undefined && input . Product !== null && { Product : __serializeFloat ( input . Product ) } ) , } ; } ; const serializeAws_restJson1SoftwarePackage = ( input , context ) : any => { return { ... ( input . Architecture !== undefined && input . Architecture !== null && { Architecture : input . Architecture } ) , ... ( input . Epoch !== undefined && input . Epoch !== null && { Epoch : input . Epoch } ) , ... ( input . FilePath !== undefined && input . FilePath !== null && { FilePath : input . FilePath } ) , ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . PackageManager !== undefined && input . PackageManager !== null && { PackageManager : input . PackageManager } ) , ... ( input . Release !== undefined && input . Release !== null && { Release : input . Release } ) , ... ( input . Version !== undefined && input . Version !== null && { Version : input . Version } ) , } ; } ; const serializeAws_restJson1SoftwarePackageList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1SoftwarePackage ( entry , context ) ; } ) ; } ; const serializeAws_restJson1SortCriteria = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1SortCriterion ( entry , context ) ; } ) ; } ; const serializeAws_restJson1SortCriterion = ( input , context ) : any => { return { ... ( input . Field !== undefined && input . Field !== null && { Field : input . Field } ) , ... ( input . SortOrder !== undefined && input . SortOrder !== null && { SortOrder : input . SortOrder } ) , } ; } ; const serializeAws_restJson1StandardsInputParameterMap = ( input , context ) : any => { return Object . entries ( input ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : value , } ; } , { } ) ; } ; const serializeAws_restJson1StandardsSubscriptionArns = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1StandardsSubscriptionRequest = ( input , context ) : any => { return { ... ( input . StandardsArn !== undefined && input . StandardsArn !== null && { StandardsArn : input . StandardsArn } ) , ... ( input . StandardsInput !== undefined && input . StandardsInput !== null && { StandardsInput : serializeAws_restJson1StandardsInputParameterMap ( input . StandardsInput , context ) , } ) , } ; } ; const serializeAws_restJson1StandardsSubscriptionRequests = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1StandardsSubscriptionRequest ( entry , context ) ; } ) ; } ; const serializeAws_restJson1StatelessCustomActionDefinition = ( input , context ) : any => { return { ... ( input . PublishMetricAction !== undefined && input . PublishMetricAction !== null && { PublishMetricAction : serializeAws_restJson1StatelessCustomPublishMetricAction ( input . PublishMetricAction , context ) , } ) , } ; } ; const serializeAws_restJson1StatelessCustomPublishMetricAction = ( input , context ) : any => { return { ... ( input . Dimensions !== undefined && input . Dimensions !== null && { Dimensions : serializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList ( input . Dimensions , context ) , } ) , } ; } ; const serializeAws_restJson1StatelessCustomPublishMetricActionDimension = ( input , context ) : any => { return { ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1StatelessCustomPublishMetricActionDimension ( entry , context ) ; } ) ; } ; const serializeAws_restJson1StatusReason = ( input , context ) : any => { return { ... ( input . Description !== undefined && input . Description !== null && { Description : input . Description } ) , ... ( input . ReasonCode !== undefined && input . ReasonCode !== null && { ReasonCode : input . ReasonCode } ) , } ; } ; const serializeAws_restJson1StatusReasonsList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1StatusReason ( entry , context ) ; } ) ; } ; const serializeAws_restJson1StringFilter = ( input , context ) : any => { return { ... ( input . Comparison !== undefined && input . Comparison !== null && { Comparison : input . Comparison } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1StringFilterList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1StringFilter ( entry , context ) ; } ) ; } ; const serializeAws_restJson1StringList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1TagMap = ( input , context ) : any => { return Object . entries ( input ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : value , } ; } , { } ) ; } ; const serializeAws_restJson1ThreatIntelIndicator = ( input , context ) : any => { return { ... ( input . Category !== undefined && input . Category !== null && { Category : input . Category } ) , ... ( input . LastObservedAt !== undefined && input . LastObservedAt !== null && { LastObservedAt : input . LastObservedAt } ) , ... ( input . Source !== undefined && input . Source !== null && { Source : input . Source } ) , ... ( input . SourceUrl !== undefined && input . SourceUrl !== null && { SourceUrl : input . SourceUrl } ) , ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , ... ( input . Value !== undefined && input . Value !== null && { Value : input . Value } ) , } ; } ; const serializeAws_restJson1ThreatIntelIndicatorList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1ThreatIntelIndicator ( entry , context ) ; } ) ; } ; const serializeAws_restJson1TypeList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return entry ; } ) ; } ; const serializeAws_restJson1Vulnerability = ( input , context ) : any => { return { ... ( input . Cvss !== undefined && input . Cvss !== null && { Cvss : serializeAws_restJson1CvssList ( input . Cvss , context ) } ) , ... ( input . Id !== undefined && input . Id !== null && { Id : input . Id } ) , ... ( input . ReferenceUrls !== undefined && input . ReferenceUrls !== null && { ReferenceUrls : serializeAws_restJson1StringList ( input . ReferenceUrls , context ) , } ) , ... ( input . RelatedVulnerabilities !== undefined && input . RelatedVulnerabilities !== null && { RelatedVulnerabilities : serializeAws_restJson1StringList ( input . RelatedVulnerabilities , context ) , } ) , ... ( input . Vendor !== undefined && input . Vendor !== null && { Vendor : serializeAws_restJson1VulnerabilityVendor ( input . Vendor , context ) } ) , ... ( input . VulnerablePackages !== undefined && input . VulnerablePackages !== null && { VulnerablePackages : serializeAws_restJson1SoftwarePackageList ( input . VulnerablePackages , context ) , } ) , } ; } ; const serializeAws_restJson1VulnerabilityList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1Vulnerability ( entry , context ) ; } ) ; } ; const serializeAws_restJson1VulnerabilityVendor = ( input , context ) : any => { return { ... ( input . Name !== undefined && input . Name !== null && { Name : input . Name } ) , ... ( input . Url !== undefined && input . Url !== null && { Url : input . Url } ) , ... ( input . VendorCreatedAt !== undefined && input . VendorCreatedAt !== null && { VendorCreatedAt : input . VendorCreatedAt } ) , ... ( input . VendorSeverity !== undefined && input . VendorSeverity !== null && { VendorSeverity : input . VendorSeverity } ) , ... ( input . VendorUpdatedAt !== undefined && input . VendorUpdatedAt !== null && { VendorUpdatedAt : input . VendorUpdatedAt } ) , } ; } ; const serializeAws_restJson1WafAction = ( input , context ) : any => { return { ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1WafExcludedRule = ( input , context ) : any => { return { ... ( input . RuleId !== undefined && input . RuleId !== null && { RuleId : input . RuleId } ) , } ; } ; const serializeAws_restJson1WafExcludedRuleList = ( input , context ) : any => { return input . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return serializeAws_restJson1WafExcludedRule ( entry , context ) ; } ) ; } ; const serializeAws_restJson1WafOverrideAction = ( input , context ) : any => { return { ... ( input . Type !== undefined && input . Type !== null && { Type : input . Type } ) , } ; } ; const serializeAws_restJson1Workflow = ( input , context ) : any => { return { ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const serializeAws_restJson1WorkflowUpdate = ( input , context ) : any => { return { ... ( input . Status !== undefined && input . Status !== null && { Status : input . Status } ) , } ; } ; const deserializeAws_restJson1Action = ( output , context ) : Action => { return { ActionType : __expectString ( output . ActionType ) , AwsApiCallAction : output . AwsApiCallAction !== undefined && output . AwsApiCallAction !== null ? deserializeAws_restJson1AwsApiCallAction ( output . AwsApiCallAction , context ) : undefined , DnsRequestAction : output . DnsRequestAction !== undefined && output . DnsRequestAction !== null ? deserializeAws_restJson1DnsRequestAction ( output . DnsRequestAction , context ) : undefined , NetworkConnectionAction : output . NetworkConnectionAction !== undefined && output . NetworkConnectionAction !== null ? deserializeAws_restJson1NetworkConnectionAction ( output . NetworkConnectionAction , context ) : undefined , PortProbeAction : output . PortProbeAction !== undefined && output . PortProbeAction !== null ? deserializeAws_restJson1PortProbeAction ( output . PortProbeAction , context ) : undefined , } as any ; } ; const deserializeAws_restJson1ActionLocalIpDetails = ( output , context ) : ActionLocalIpDetails => { return { IpAddressV4 : __expectString ( output . IpAddressV4 ) , } as any ; } ; const deserializeAws_restJson1ActionLocalPortDetails = ( output , context ) : ActionLocalPortDetails => { return { Port : __expectInt32 ( output . Port ) , PortName : __expectString ( output . PortName ) , } as any ; } ; const deserializeAws_restJson1ActionRemoteIpDetails = ( output , context ) : ActionRemoteIpDetails => { return { City : output . City !== undefined && output . City !== null ? deserializeAws_restJson1City ( output . City , context ) : undefined , Country : output . Country !== undefined && output . Country !== null ? deserializeAws_restJson1Country ( output . Country , context ) : undefined , GeoLocation : output . GeoLocation !== undefined && output . GeoLocation !== null ? deserializeAws_restJson1GeoLocation ( output . GeoLocation , context ) : undefined , IpAddressV4 : __expectString ( output . IpAddressV4 ) , Organization : output . Organization !== undefined && output . Organization !== null ? deserializeAws_restJson1IpOrganizationDetails ( output . Organization , context ) : undefined , } as any ; } ; const deserializeAws_restJson1ActionRemotePortDetails = ( output , context ) : ActionRemotePortDetails => { return { Port : __expectInt32 ( output . Port ) , PortName : __expectString ( output . PortName ) , } as any ; } ; const deserializeAws_restJson1ActionTarget = ( output , context ) : ActionTarget => { return { ActionTargetArn : __expectString ( output . ActionTargetArn ) , Description : __expectString ( output . Description ) , Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1ActionTargetList = ( output , context ) : ActionTarget [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1ActionTarget ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Adjustment = ( output , context ) : Adjustment => { return { Metric : __expectString ( output . Metric ) , Reason : __expectString ( output . Reason ) , } as any ; } ; const deserializeAws_restJson1AdjustmentList = ( output , context ) : Adjustment [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Adjustment ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AdminAccount = ( output , context ) : AdminAccount => { return { AccountId : __expectString ( output . AccountId ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AdminAccounts = ( output , context ) : AdminAccount [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AdminAccount ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AvailabilityZone = ( output , context ) : AvailabilityZone => { return { SubnetId : __expectString ( output . SubnetId ) , ZoneName : __expectString ( output . ZoneName ) , } as any ; } ; const deserializeAws_restJson1AvailabilityZones = ( output , context ) : AvailabilityZone [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AvailabilityZone ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsApiCallAction = ( output , context ) : AwsApiCallAction => { return { AffectedResources : output . AffectedResources !== undefined && output . AffectedResources !== null ? deserializeAws_restJson1FieldMap ( output . AffectedResources , context ) : undefined , Api : __expectString ( output . Api ) , CallerType : __expectString ( output . CallerType ) , DomainDetails : output . DomainDetails !== undefined && output . DomainDetails !== null ? deserializeAws_restJson1AwsApiCallActionDomainDetails ( output . DomainDetails , context ) : undefined , FirstSeen : __expectString ( output . FirstSeen ) , LastSeen : __expectString ( output . LastSeen ) , RemoteIpDetails : output . RemoteIpDetails !== undefined && output . RemoteIpDetails !== null ? deserializeAws_restJson1ActionRemoteIpDetails ( output . RemoteIpDetails , context ) : undefined , ServiceName : __expectString ( output . ServiceName ) , } as any ; } ; const deserializeAws_restJson1AwsApiCallActionDomainDetails = ( output , context ) : AwsApiCallActionDomainDetails => { return { Domain : __expectString ( output . Domain ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayAccessLogSettings = ( output , context ) : AwsApiGatewayAccessLogSettings => { return { DestinationArn : __expectString ( output . DestinationArn ) , Format : __expectString ( output . Format ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayCanarySettings = ( output , context ) : AwsApiGatewayCanarySettings => { return { DeploymentId : __expectString ( output . DeploymentId ) , PercentTraffic : __limitedParseDouble ( output . PercentTraffic ) , StageVariableOverrides : output . StageVariableOverrides !== undefined && output . StageVariableOverrides !== null ? deserializeAws_restJson1FieldMap ( output . StageVariableOverrides , context ) : undefined , UseStageCache : __expectBoolean ( output . UseStageCache ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayEndpointConfiguration = ( output , context ) : AwsApiGatewayEndpointConfiguration => { return { Types : output . Types !== undefined && output . Types !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Types , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayMethodSettings = ( output , context ) : AwsApiGatewayMethodSettings => { return { CacheDataEncrypted : __expectBoolean ( output . CacheDataEncrypted ) , CacheTtlInSeconds : __expectInt32 ( output . CacheTtlInSeconds ) , CachingEnabled : __expectBoolean ( output . CachingEnabled ) , DataTraceEnabled : __expectBoolean ( output . DataTraceEnabled ) , HttpMethod : __expectString ( output . HttpMethod ) , LoggingLevel : __expectString ( output . LoggingLevel ) , MetricsEnabled : __expectBoolean ( output . MetricsEnabled ) , RequireAuthorizationForCacheControl : __expectBoolean ( output . RequireAuthorizationForCacheControl ) , ResourcePath : __expectString ( output . ResourcePath ) , ThrottlingBurstLimit : __expectInt32 ( output . ThrottlingBurstLimit ) , ThrottlingRateLimit : __limitedParseDouble ( output . ThrottlingRateLimit ) , UnauthorizedCacheControlHeaderStrategy : __expectString ( output . UnauthorizedCacheControlHeaderStrategy ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayMethodSettingsList = ( output , context ) : AwsApiGatewayMethodSettings [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsApiGatewayMethodSettings ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsApiGatewayRestApiDetails = ( output , context ) : AwsApiGatewayRestApiDetails => { return { ApiKeySource : __expectString ( output . ApiKeySource ) , BinaryMediaTypes : output . BinaryMediaTypes !== undefined && output . BinaryMediaTypes !== null ? deserializeAws_restJson1NonEmptyStringList ( output . BinaryMediaTypes , context ) : undefined , CreatedDate : __expectString ( output . CreatedDate ) , Description : __expectString ( output . Description ) , EndpointConfiguration : output . EndpointConfiguration !== undefined && output . EndpointConfiguration !== null ? deserializeAws_restJson1AwsApiGatewayEndpointConfiguration ( output . EndpointConfiguration , context ) : undefined , Id : __expectString ( output . Id ) , MinimumCompressionSize : __expectInt32 ( output . MinimumCompressionSize ) , Name : __expectString ( output . Name ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayStageDetails = ( output , context ) : AwsApiGatewayStageDetails => { return { AccessLogSettings : output . AccessLogSettings !== undefined && output . AccessLogSettings !== null ? deserializeAws_restJson1AwsApiGatewayAccessLogSettings ( output . AccessLogSettings , context ) : undefined , CacheClusterEnabled : __expectBoolean ( output . CacheClusterEnabled ) , CacheClusterSize : __expectString ( output . CacheClusterSize ) , CacheClusterStatus : __expectString ( output . CacheClusterStatus ) , CanarySettings : output . CanarySettings !== undefined && output . CanarySettings !== null ? deserializeAws_restJson1AwsApiGatewayCanarySettings ( output . CanarySettings , context ) : undefined , ClientCertificateId : __expectString ( output . ClientCertificateId ) , CreatedDate : __expectString ( output . CreatedDate ) , DeploymentId : __expectString ( output . DeploymentId ) , Description : __expectString ( output . Description ) , DocumentationVersion : __expectString ( output . DocumentationVersion ) , LastUpdatedDate : __expectString ( output . LastUpdatedDate ) , MethodSettings : output . MethodSettings !== undefined && output . MethodSettings !== null ? deserializeAws_restJson1AwsApiGatewayMethodSettingsList ( output . MethodSettings , context ) : undefined , StageName : __expectString ( output . StageName ) , TracingEnabled : __expectBoolean ( output . TracingEnabled ) , Variables : output . Variables !== undefined && output . Variables !== null ? deserializeAws_restJson1FieldMap ( output . Variables , context ) : undefined , WebAclArn : __expectString ( output . WebAclArn ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayV2ApiDetails = ( output , context ) : AwsApiGatewayV2ApiDetails => { return { ApiEndpoint : __expectString ( output . ApiEndpoint ) , ApiId : __expectString ( output . ApiId ) , ApiKeySelectionExpression : __expectString ( output . ApiKeySelectionExpression ) , CorsConfiguration : output . CorsConfiguration !== undefined && output . CorsConfiguration !== null ? deserializeAws_restJson1AwsCorsConfiguration ( output . CorsConfiguration , context ) : undefined , CreatedDate : __expectString ( output . CreatedDate ) , Description : __expectString ( output . Description ) , Name : __expectString ( output . Name ) , ProtocolType : __expectString ( output . ProtocolType ) , RouteSelectionExpression : __expectString ( output . RouteSelectionExpression ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayV2RouteSettings = ( output , context ) : AwsApiGatewayV2RouteSettings => { return { DataTraceEnabled : __expectBoolean ( output . DataTraceEnabled ) , DetailedMetricsEnabled : __expectBoolean ( output . DetailedMetricsEnabled ) , LoggingLevel : __expectString ( output . LoggingLevel ) , ThrottlingBurstLimit : __expectInt32 ( output . ThrottlingBurstLimit ) , ThrottlingRateLimit : __limitedParseDouble ( output . ThrottlingRateLimit ) , } as any ; } ; const deserializeAws_restJson1AwsApiGatewayV2StageDetails = ( output , context ) : AwsApiGatewayV2StageDetails => { return { AccessLogSettings : output . AccessLogSettings !== undefined && output . AccessLogSettings !== null ? deserializeAws_restJson1AwsApiGatewayAccessLogSettings ( output . AccessLogSettings , context ) : undefined , ApiGatewayManaged : __expectBoolean ( output . ApiGatewayManaged ) , AutoDeploy : __expectBoolean ( output . AutoDeploy ) , ClientCertificateId : __expectString ( output . ClientCertificateId ) , CreatedDate : __expectString ( output . CreatedDate ) , DefaultRouteSettings : output . DefaultRouteSettings !== undefined && output . DefaultRouteSettings !== null ? deserializeAws_restJson1AwsApiGatewayV2RouteSettings ( output . DefaultRouteSettings , context ) : undefined , DeploymentId : __expectString ( output . DeploymentId ) , Description : __expectString ( output . Description ) , LastDeploymentStatusMessage : __expectString ( output . LastDeploymentStatusMessage ) , LastUpdatedDate : __expectString ( output . LastUpdatedDate ) , RouteSettings : output . RouteSettings !== undefined && output . RouteSettings !== null ? deserializeAws_restJson1AwsApiGatewayV2RouteSettings ( output . RouteSettings , context ) : undefined , StageName : __expectString ( output . StageName ) , StageVariables : output . StageVariables !== undefined && output . StageVariables !== null ? deserializeAws_restJson1FieldMap ( output . StageVariables , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList = ( output , context ) : AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails => { return { Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupDetails => { return { AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList ( output . AvailabilityZones , context ) : undefined , CreatedTime : __expectString ( output . CreatedTime ) , HealthCheckGracePeriod : __expectInt32 ( output . HealthCheckGracePeriod ) , HealthCheckType : __expectString ( output . HealthCheckType ) , LaunchConfigurationName : __expectString ( output . LaunchConfigurationName ) , LoadBalancerNames : output . LoadBalancerNames !== undefined && output . LoadBalancerNames !== null ? deserializeAws_restJson1StringList ( output . LoadBalancerNames , context ) : undefined , MixedInstancesPolicy : output . MixedInstancesPolicy !== undefined && output . MixedInstancesPolicy !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails ( output . MixedInstancesPolicy , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails => { return { InstancesDistribution : output . InstancesDistribution !== undefined && output . InstancesDistribution !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails ( output . InstancesDistribution , context ) : undefined , LaunchTemplate : output . LaunchTemplate !== undefined && output . LaunchTemplate !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails ( output . LaunchTemplate , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails => { return { OnDemandAllocationStrategy : __expectString ( output . OnDemandAllocationStrategy ) , OnDemandBaseCapacity : __expectInt32 ( output . OnDemandBaseCapacity ) , OnDemandPercentageAboveBaseCapacity : __expectInt32 ( output . OnDemandPercentageAboveBaseCapacity ) , SpotAllocationStrategy : __expectString ( output . SpotAllocationStrategy ) , SpotInstancePools : __expectInt32 ( output . SpotInstancePools ) , SpotMaxPrice : __expectString ( output . SpotMaxPrice ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails => { return { LaunchTemplateSpecification : output . LaunchTemplateSpecification !== undefined && output . LaunchTemplateSpecification !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification ( output . LaunchTemplateSpecification , context ) : undefined , Overrides : output . Overrides !== undefined && output . Overrides !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList ( output . Overrides , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification => { return { LaunchTemplateId : __expectString ( output . LaunchTemplateId ) , LaunchTemplateName : __expectString ( output . LaunchTemplateName ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails = ( output , context ) : AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails => { return { InstanceType : __expectString ( output . InstanceType ) , WeightedCapacity : __expectString ( output . WeightedCapacity ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails = ( output , context ) : AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails => { return { DeviceName : __expectString ( output . DeviceName ) , Ebs : output . Ebs !== undefined && output . Ebs !== null ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails ( output . Ebs , context ) : undefined , NoDevice : __expectBoolean ( output . NoDevice ) , VirtualName : __expectString ( output . VirtualName ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails = ( output , context ) : AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails => { return { DeleteOnTermination : __expectBoolean ( output . DeleteOnTermination ) , Encrypted : __expectBoolean ( output . Encrypted ) , Iops : __expectInt32 ( output . Iops ) , SnapshotId : __expectString ( output . SnapshotId ) , VolumeSize : __expectInt32 ( output . VolumeSize ) , VolumeType : __expectString ( output . VolumeType ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList = ( output , context ) : AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails = ( output , context ) : AwsAutoScalingLaunchConfigurationDetails => { return { AssociatePublicIpAddress : __expectBoolean ( output . AssociatePublicIpAddress ) , BlockDeviceMappings : output . BlockDeviceMappings !== undefined && output . BlockDeviceMappings !== null ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationBlockDeviceMappingsList ( output . BlockDeviceMappings , context ) : undefined , ClassicLinkVpcId : __expectString ( output . ClassicLinkVpcId ) , ClassicLinkVpcSecurityGroups : output . ClassicLinkVpcSecurityGroups !== undefined && output . ClassicLinkVpcSecurityGroups !== null ? deserializeAws_restJson1NonEmptyStringList ( output . ClassicLinkVpcSecurityGroups , context ) : undefined , CreatedTime : __expectString ( output . CreatedTime ) , EbsOptimized : __expectBoolean ( output . EbsOptimized ) , IamInstanceProfile : __expectString ( output . IamInstanceProfile ) , ImageId : __expectString ( output . ImageId ) , InstanceMonitoring : output . InstanceMonitoring !== undefined && output . InstanceMonitoring !== null ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails ( output . InstanceMonitoring , context ) : undefined , InstanceType : __expectString ( output . InstanceType ) , KernelId : __expectString ( output . KernelId ) , KeyName : __expectString ( output . KeyName ) , LaunchConfigurationName : __expectString ( output . LaunchConfigurationName ) , MetadataOptions : output . MetadataOptions !== undefined && output . MetadataOptions !== null ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions ( output . MetadataOptions , context ) : undefined , PlacementTenancy : __expectString ( output . PlacementTenancy ) , RamdiskId : __expectString ( output . RamdiskId ) , SecurityGroups : output . SecurityGroups !== undefined && output . SecurityGroups !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroups , context ) : undefined , SpotPrice : __expectString ( output . SpotPrice ) , UserData : __expectString ( output . UserData ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails = ( output , context ) : AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails => { return { Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions = ( output , context ) : AwsAutoScalingLaunchConfigurationMetadataOptions => { return { HttpEndpoint : __expectString ( output . HttpEndpoint ) , HttpPutResponseHopLimit : __expectInt32 ( output . HttpPutResponseHopLimit ) , HttpTokens : __expectString ( output . HttpTokens ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateDetails = ( output , context ) : AwsCertificateManagerCertificateDetails => { return { CertificateAuthorityArn : __expectString ( output . CertificateAuthorityArn ) , CreatedAt : __expectString ( output . CreatedAt ) , DomainName : __expectString ( output . DomainName ) , DomainValidationOptions : output . DomainValidationOptions !== undefined && output . DomainValidationOptions !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions ( output . DomainValidationOptions , context ) : undefined , ExtendedKeyUsages : output . ExtendedKeyUsages !== undefined && output . ExtendedKeyUsages !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsages ( output . ExtendedKeyUsages , context ) : undefined , FailureReason : __expectString ( output . FailureReason ) , ImportedAt : __expectString ( output . ImportedAt ) , InUseBy : output . InUseBy !== undefined && output . InUseBy !== null ? deserializeAws_restJson1StringList ( output . InUseBy , context ) : undefined , IssuedAt : __expectString ( output . IssuedAt ) , Issuer : __expectString ( output . Issuer ) , KeyAlgorithm : __expectString ( output . KeyAlgorithm ) , KeyUsages : output . KeyUsages !== undefined && output . KeyUsages !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateKeyUsages ( output . KeyUsages , context ) : undefined , NotAfter : __expectString ( output . NotAfter ) , NotBefore : __expectString ( output . NotBefore ) , Options : output . Options !== undefined && output . Options !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateOptions ( output . Options , context ) : undefined , RenewalEligibility : __expectString ( output . RenewalEligibility ) , RenewalSummary : output . RenewalSummary !== undefined && output . RenewalSummary !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateRenewalSummary ( output . RenewalSummary , context ) : undefined , Serial : __expectString ( output . Serial ) , SignatureAlgorithm : __expectString ( output . SignatureAlgorithm ) , Status : __expectString ( output . Status ) , Subject : __expectString ( output . Subject ) , SubjectAlternativeNames : output . SubjectAlternativeNames !== undefined && output . SubjectAlternativeNames !== null ? deserializeAws_restJson1StringList ( output . SubjectAlternativeNames , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOption = ( output , context ) : AwsCertificateManagerCertificateDomainValidationOption => { return { DomainName : __expectString ( output . DomainName ) , ResourceRecord : output . ResourceRecord !== undefined && output . ResourceRecord !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateResourceRecord ( output . ResourceRecord , context ) : undefined , ValidationDomain : __expectString ( output . ValidationDomain ) , ValidationEmails : output . ValidationEmails !== undefined && output . ValidationEmails !== null ? deserializeAws_restJson1StringList ( output . ValidationEmails , context ) : undefined , ValidationMethod : __expectString ( output . ValidationMethod ) , ValidationStatus : __expectString ( output . ValidationStatus ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions = ( output , context ) : AwsCertificateManagerCertificateDomainValidationOption [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOption ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsage = ( output , context ) : AwsCertificateManagerCertificateExtendedKeyUsage => { return { Name : __expectString ( output . Name ) , OId : __expectString ( output . OId ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsages = ( output , context ) : AwsCertificateManagerCertificateExtendedKeyUsage [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCertificateManagerCertificateExtendedKeyUsage ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateKeyUsage = ( output , context ) : AwsCertificateManagerCertificateKeyUsage => { return { Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateKeyUsages = ( output , context ) : AwsCertificateManagerCertificateKeyUsage [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCertificateManagerCertificateKeyUsage ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateOptions = ( output , context ) : AwsCertificateManagerCertificateOptions => { return { CertificateTransparencyLoggingPreference : __expectString ( output . CertificateTransparencyLoggingPreference ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateRenewalSummary = ( output , context ) : AwsCertificateManagerCertificateRenewalSummary => { return { DomainValidationOptions : output . DomainValidationOptions !== undefined && output . DomainValidationOptions !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateDomainValidationOptions ( output . DomainValidationOptions , context ) : undefined , RenewalStatus : __expectString ( output . RenewalStatus ) , RenewalStatusReason : __expectString ( output . RenewalStatusReason ) , UpdatedAt : __expectString ( output . UpdatedAt ) , } as any ; } ; const deserializeAws_restJson1AwsCertificateManagerCertificateResourceRecord = ( output , context ) : AwsCertificateManagerCertificateResourceRecord => { return { Name : __expectString ( output . Name ) , Type : __expectString ( output . Type ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionCacheBehavior = ( output , context ) : AwsCloudFrontDistributionCacheBehavior => { return { ViewerProtocolPolicy : __expectString ( output . ViewerProtocolPolicy ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionCacheBehaviors = ( output , context ) : AwsCloudFrontDistributionCacheBehaviors => { return { Items : output . Items !== undefined && output . Items !== null ? deserializeAws_restJson1AwsCloudFrontDistributionCacheBehaviorsItemList ( output . Items , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionCacheBehaviorsItemList = ( output , context ) : AwsCloudFrontDistributionCacheBehavior [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCloudFrontDistributionCacheBehavior ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionDefaultCacheBehavior = ( output , context ) : AwsCloudFrontDistributionDefaultCacheBehavior => { return { ViewerProtocolPolicy : __expectString ( output . ViewerProtocolPolicy ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionDetails = ( output , context ) : AwsCloudFrontDistributionDetails => { return { CacheBehaviors : output . CacheBehaviors !== undefined && output . CacheBehaviors !== null ? deserializeAws_restJson1AwsCloudFrontDistributionCacheBehaviors ( output . CacheBehaviors , context ) : undefined , DefaultCacheBehavior : output . DefaultCacheBehavior !== undefined && output . DefaultCacheBehavior !== null ? deserializeAws_restJson1AwsCloudFrontDistributionDefaultCacheBehavior ( output . DefaultCacheBehavior , context ) : undefined , DefaultRootObject : __expectString ( output . DefaultRootObject ) , DomainName : __expectString ( output . DomainName ) , ETag : __expectString ( output . ETag ) , LastModifiedTime : __expectString ( output . LastModifiedTime ) , Logging : output . Logging !== undefined && output . Logging !== null ? deserializeAws_restJson1AwsCloudFrontDistributionLogging ( output . Logging , context ) : undefined , OriginGroups : output . OriginGroups !== undefined && output . OriginGroups !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginGroups ( output . OriginGroups , context ) : undefined , Origins : output . Origins !== undefined && output . Origins !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOrigins ( output . Origins , context ) : undefined , Status : __expectString ( output . Status ) , ViewerCertificate : output . ViewerCertificate !== undefined && output . ViewerCertificate !== null ? deserializeAws_restJson1AwsCloudFrontDistributionViewerCertificate ( output . ViewerCertificate , context ) : undefined , WebAclId : __expectString ( output . WebAclId ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionLogging = ( output , context ) : AwsCloudFrontDistributionLogging => { return { Bucket : __expectString ( output . Bucket ) , Enabled : __expectBoolean ( output . Enabled ) , IncludeCookies : __expectBoolean ( output . IncludeCookies ) , Prefix : __expectString ( output . Prefix ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroup = ( output , context ) : AwsCloudFrontDistributionOriginGroup => { return { FailoverCriteria : output . FailoverCriteria !== undefined && output . FailoverCriteria !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailover ( output . FailoverCriteria , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailover = ( output , context ) : AwsCloudFrontDistributionOriginGroupFailover => { return { StatusCodes : output . StatusCodes !== undefined && output . StatusCodes !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodes ( output . StatusCodes , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodes = ( output , context ) : AwsCloudFrontDistributionOriginGroupFailoverStatusCodes => { return { Items : output . Items !== undefined && output . Items !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList ( output . Items , context ) : undefined , Quantity : __expectInt32 ( output . Quantity ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList = ( output , context ) : number [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectInt32 ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroups = ( output , context ) : AwsCloudFrontDistributionOriginGroups => { return { Items : output . Items !== undefined && output . Items !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupsItemList ( output . Items , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginGroupsItemList = ( output , context ) : AwsCloudFrontDistributionOriginGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCloudFrontDistributionOriginGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginItem = ( output , context ) : AwsCloudFrontDistributionOriginItem => { return { DomainName : __expectString ( output . DomainName ) , Id : __expectString ( output . Id ) , OriginPath : __expectString ( output . OriginPath ) , S3OriginConfig : output . S3OriginConfig !== undefined && output . S3OriginConfig !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginS3OriginConfig ( output . S3OriginConfig , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginItemList = ( output , context ) : AwsCloudFrontDistributionOriginItem [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCloudFrontDistributionOriginItem ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOrigins = ( output , context ) : AwsCloudFrontDistributionOrigins => { return { Items : output . Items !== undefined && output . Items !== null ? deserializeAws_restJson1AwsCloudFrontDistributionOriginItemList ( output . Items , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionOriginS3OriginConfig = ( output , context ) : AwsCloudFrontDistributionOriginS3OriginConfig => { return { OriginAccessIdentity : __expectString ( output . OriginAccessIdentity ) , } as any ; } ; const deserializeAws_restJson1AwsCloudFrontDistributionViewerCertificate = ( output , context ) : AwsCloudFrontDistributionViewerCertificate => { return { AcmCertificateArn : __expectString ( output . AcmCertificateArn ) , Certificate : __expectString ( output . Certificate ) , CertificateSource : __expectString ( output . CertificateSource ) , CloudFrontDefaultCertificate : __expectBoolean ( output . CloudFrontDefaultCertificate ) , IamCertificateId : __expectString ( output . IamCertificateId ) , MinimumProtocolVersion : __expectString ( output . MinimumProtocolVersion ) , SslSupportMethod : __expectString ( output . SslSupportMethod ) , } as any ; } ; const deserializeAws_restJson1AwsCloudTrailTrailDetails = ( output , context ) : AwsCloudTrailTrailDetails => { return { CloudWatchLogsLogGroupArn : __expectString ( output . CloudWatchLogsLogGroupArn ) , CloudWatchLogsRoleArn : __expectString ( output . CloudWatchLogsRoleArn ) , HasCustomEventSelectors : __expectBoolean ( output . HasCustomEventSelectors ) , HomeRegion : __expectString ( output . HomeRegion ) , IncludeGlobalServiceEvents : __expectBoolean ( output . IncludeGlobalServiceEvents ) , IsMultiRegionTrail : __expectBoolean ( output . IsMultiRegionTrail ) , IsOrganizationTrail : __expectBoolean ( output . IsOrganizationTrail ) , KmsKeyId : __expectString ( output . KmsKeyId ) , LogFileValidationEnabled : __expectBoolean ( output . LogFileValidationEnabled ) , Name : __expectString ( output . Name ) , S3BucketName : __expectString ( output . S3BucketName ) , S3KeyPrefix : __expectString ( output . S3KeyPrefix ) , SnsTopicArn : __expectString ( output . SnsTopicArn ) , SnsTopicName : __expectString ( output . SnsTopicName ) , TrailArn : __expectString ( output . TrailArn ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectArtifactsDetails = ( output , context ) : AwsCodeBuildProjectArtifactsDetails => { return { ArtifactIdentifier : __expectString ( output . ArtifactIdentifier ) , EncryptionDisabled : __expectBoolean ( output . EncryptionDisabled ) , Location : __expectString ( output . Location ) , Name : __expectString ( output . Name ) , NamespaceType : __expectString ( output . NamespaceType ) , OverrideArtifactName : __expectBoolean ( output . OverrideArtifactName ) , Packaging : __expectString ( output . Packaging ) , Path : __expectString ( output . Path ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectArtifactsList = ( output , context ) : AwsCodeBuildProjectArtifactsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCodeBuildProjectArtifactsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCodeBuildProjectDetails = ( output , context ) : AwsCodeBuildProjectDetails => { return { Artifacts : output . Artifacts !== undefined && output . Artifacts !== null ? deserializeAws_restJson1AwsCodeBuildProjectArtifactsList ( output . Artifacts , context ) : undefined , EncryptionKey : __expectString ( output . EncryptionKey ) , Environment : output . Environment !== undefined && output . Environment !== null ? deserializeAws_restJson1AwsCodeBuildProjectEnvironment ( output . Environment , context ) : undefined , LogsConfig : output . LogsConfig !== undefined && output . LogsConfig !== null ? deserializeAws_restJson1AwsCodeBuildProjectLogsConfigDetails ( output . LogsConfig , context ) : undefined , Name : __expectString ( output . Name ) , ServiceRole : __expectString ( output . ServiceRole ) , Source : output . Source !== undefined && output . Source !== null ? deserializeAws_restJson1AwsCodeBuildProjectSource ( output . Source , context ) : undefined , VpcConfig : output . VpcConfig !== undefined && output . VpcConfig !== null ? deserializeAws_restJson1AwsCodeBuildProjectVpcConfig ( output . VpcConfig , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectEnvironment = ( output , context ) : AwsCodeBuildProjectEnvironment => { return { Certificate : __expectString ( output . Certificate ) , EnvironmentVariables : output . EnvironmentVariables !== undefined && output . EnvironmentVariables !== null ? deserializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesList ( output . EnvironmentVariables , context ) : undefined , ImagePullCredentialsType : __expectString ( output . ImagePullCredentialsType ) , PrivilegedMode : __expectBoolean ( output . PrivilegedMode ) , RegistryCredential : output . RegistryCredential !== undefined && output . RegistryCredential !== null ? deserializeAws_restJson1AwsCodeBuildProjectEnvironmentRegistryCredential ( output . RegistryCredential , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails = ( output , context ) : AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails => { return { Name : __expectString ( output . Name ) , Type : __expectString ( output . Type ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesList = ( output , context ) : AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsCodeBuildProjectEnvironmentEnvironmentVariablesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsCodeBuildProjectEnvironmentRegistryCredential = ( output , context ) : AwsCodeBuildProjectEnvironmentRegistryCredential => { return { Credential : __expectString ( output . Credential ) , CredentialProvider : __expectString ( output . CredentialProvider ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails = ( output , context ) : AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails => { return { GroupName : __expectString ( output . GroupName ) , Status : __expectString ( output . Status ) , StreamName : __expectString ( output . StreamName ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectLogsConfigDetails = ( output , context ) : AwsCodeBuildProjectLogsConfigDetails => { return { CloudWatchLogs : output . CloudWatchLogs !== undefined && output . CloudWatchLogs !== null ? deserializeAws_restJson1AwsCodeBuildProjectLogsConfigCloudWatchLogsDetails ( output . CloudWatchLogs , context ) : undefined , S3Logs : output . S3Logs !== undefined && output . S3Logs !== null ? deserializeAws_restJson1AwsCodeBuildProjectLogsConfigS3LogsDetails ( output . S3Logs , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectLogsConfigS3LogsDetails = ( output , context ) : AwsCodeBuildProjectLogsConfigS3LogsDetails => { return { EncryptionDisabled : __expectBoolean ( output . EncryptionDisabled ) , Location : __expectString ( output . Location ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectSource = ( output , context ) : AwsCodeBuildProjectSource => { return { GitCloneDepth : __expectInt32 ( output . GitCloneDepth ) , InsecureSsl : __expectBoolean ( output . InsecureSsl ) , Location : __expectString ( output . Location ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsCodeBuildProjectVpcConfig = ( output , context ) : AwsCodeBuildProjectVpcConfig => { return { SecurityGroupIds : output . SecurityGroupIds !== undefined && output . SecurityGroupIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroupIds , context ) : undefined , Subnets : output . Subnets !== undefined && output . Subnets !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Subnets , context ) : undefined , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsCorsConfiguration = ( output , context ) : AwsCorsConfiguration => { return { AllowCredentials : __expectBoolean ( output . AllowCredentials ) , AllowHeaders : output . AllowHeaders !== undefined && output . AllowHeaders !== null ? deserializeAws_restJson1NonEmptyStringList ( output . AllowHeaders , context ) : undefined , AllowMethods : output . AllowMethods !== undefined && output . AllowMethods !== null ? deserializeAws_restJson1NonEmptyStringList ( output . AllowMethods , context ) : undefined , AllowOrigins : output . AllowOrigins !== undefined && output . AllowOrigins !== null ? deserializeAws_restJson1NonEmptyStringList ( output . AllowOrigins , context ) : undefined , ExposeHeaders : output . ExposeHeaders !== undefined && output . ExposeHeaders !== null ? deserializeAws_restJson1NonEmptyStringList ( output . ExposeHeaders , context ) : undefined , MaxAge : __expectInt32 ( output . MaxAge ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableAttributeDefinition = ( output , context ) : AwsDynamoDbTableAttributeDefinition => { return { AttributeName : __expectString ( output . AttributeName ) , AttributeType : __expectString ( output . AttributeType ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableAttributeDefinitionList = ( output , context ) : AwsDynamoDbTableAttributeDefinition [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableAttributeDefinition ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableBillingModeSummary = ( output , context ) : AwsDynamoDbTableBillingModeSummary => { return { BillingMode : __expectString ( output . BillingMode ) , LastUpdateToPayPerRequestDateTime : __expectString ( output . LastUpdateToPayPerRequestDateTime ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableDetails = ( output , context ) : AwsDynamoDbTableDetails => { return { AttributeDefinitions : output . AttributeDefinitions !== undefined && output . AttributeDefinitions !== null ? deserializeAws_restJson1AwsDynamoDbTableAttributeDefinitionList ( output . AttributeDefinitions , context ) : undefined , BillingModeSummary : output . BillingModeSummary !== undefined && output . BillingModeSummary !== null ? deserializeAws_restJson1AwsDynamoDbTableBillingModeSummary ( output . BillingModeSummary , context ) : undefined , CreationDateTime : __expectString ( output . CreationDateTime ) , GlobalSecondaryIndexes : output . GlobalSecondaryIndexes !== undefined && output . GlobalSecondaryIndexes !== null ? deserializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndexList ( output . GlobalSecondaryIndexes , context ) : undefined , GlobalTableVersion : __expectString ( output . GlobalTableVersion ) , ItemCount : __expectInt32 ( output . ItemCount ) , KeySchema : output . KeySchema !== undefined && output . KeySchema !== null ? deserializeAws_restJson1AwsDynamoDbTableKeySchemaList ( output . KeySchema , context ) : undefined , LatestStreamArn : __expectString ( output . LatestStreamArn ) , LatestStreamLabel : __expectString ( output . LatestStreamLabel ) , LocalSecondaryIndexes : output . LocalSecondaryIndexes !== undefined && output . LocalSecondaryIndexes !== null ? deserializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndexList ( output . LocalSecondaryIndexes , context ) : undefined , ProvisionedThroughput : output . ProvisionedThroughput !== undefined && output . ProvisionedThroughput !== null ? deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughput ( output . ProvisionedThroughput , context ) : undefined , Replicas : output . Replicas !== undefined && output . Replicas !== null ? deserializeAws_restJson1AwsDynamoDbTableReplicaList ( output . Replicas , context ) : undefined , RestoreSummary : output . RestoreSummary !== undefined && output . RestoreSummary !== null ? deserializeAws_restJson1AwsDynamoDbTableRestoreSummary ( output . RestoreSummary , context ) : undefined , SseDescription : output . SseDescription !== undefined && output . SseDescription !== null ? deserializeAws_restJson1AwsDynamoDbTableSseDescription ( output . SseDescription , context ) : undefined , StreamSpecification : output . StreamSpecification !== undefined && output . StreamSpecification !== null ? deserializeAws_restJson1AwsDynamoDbTableStreamSpecification ( output . StreamSpecification , context ) : undefined , TableId : __expectString ( output . TableId ) , TableName : __expectString ( output . TableName ) , TableSizeBytes : __expectLong ( output . TableSizeBytes ) , TableStatus : __expectString ( output . TableStatus ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndex = ( output , context ) : AwsDynamoDbTableGlobalSecondaryIndex => { return { Backfilling : __expectBoolean ( output . Backfilling ) , IndexArn : __expectString ( output . IndexArn ) , IndexName : __expectString ( output . IndexName ) , IndexSizeBytes : __expectLong ( output . IndexSizeBytes ) , IndexStatus : __expectString ( output . IndexStatus ) , ItemCount : __expectInt32 ( output . ItemCount ) , KeySchema : output . KeySchema !== undefined && output . KeySchema !== null ? deserializeAws_restJson1AwsDynamoDbTableKeySchemaList ( output . KeySchema , context ) : undefined , Projection : output . Projection !== undefined && output . Projection !== null ? deserializeAws_restJson1AwsDynamoDbTableProjection ( output . Projection , context ) : undefined , ProvisionedThroughput : output . ProvisionedThroughput !== undefined && output . ProvisionedThroughput !== null ? deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughput ( output . ProvisionedThroughput , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndexList = ( output , context ) : AwsDynamoDbTableGlobalSecondaryIndex [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableGlobalSecondaryIndex ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableKeySchema = ( output , context ) : AwsDynamoDbTableKeySchema => { return { AttributeName : __expectString ( output . AttributeName ) , KeyType : __expectString ( output . KeyType ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableKeySchemaList = ( output , context ) : AwsDynamoDbTableKeySchema [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableKeySchema ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndex = ( output , context ) : AwsDynamoDbTableLocalSecondaryIndex => { return { IndexArn : __expectString ( output . IndexArn ) , IndexName : __expectString ( output . IndexName ) , KeySchema : output . KeySchema !== undefined && output . KeySchema !== null ? deserializeAws_restJson1AwsDynamoDbTableKeySchemaList ( output . KeySchema , context ) : undefined , Projection : output . Projection !== undefined && output . Projection !== null ? deserializeAws_restJson1AwsDynamoDbTableProjection ( output . Projection , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndexList = ( output , context ) : AwsDynamoDbTableLocalSecondaryIndex [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableLocalSecondaryIndex ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableProjection = ( output , context ) : AwsDynamoDbTableProjection => { return { NonKeyAttributes : output . NonKeyAttributes !== undefined && output . NonKeyAttributes !== null ? deserializeAws_restJson1StringList ( output . NonKeyAttributes , context ) : undefined , ProjectionType : __expectString ( output . ProjectionType ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughput = ( output , context ) : AwsDynamoDbTableProvisionedThroughput => { return { LastDecreaseDateTime : __expectString ( output . LastDecreaseDateTime ) , LastIncreaseDateTime : __expectString ( output . LastIncreaseDateTime ) , NumberOfDecreasesToday : __expectInt32 ( output . NumberOfDecreasesToday ) , ReadCapacityUnits : __expectInt32 ( output . ReadCapacityUnits ) , WriteCapacityUnits : __expectInt32 ( output . WriteCapacityUnits ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride = ( output , context ) : AwsDynamoDbTableProvisionedThroughputOverride => { return { ReadCapacityUnits : __expectInt32 ( output . ReadCapacityUnits ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableReplica = ( output , context ) : AwsDynamoDbTableReplica => { return { GlobalSecondaryIndexes : output . GlobalSecondaryIndexes !== undefined && output . GlobalSecondaryIndexes !== null ? deserializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndexList ( output . GlobalSecondaryIndexes , context ) : undefined , KmsMasterKeyId : __expectString ( output . KmsMasterKeyId ) , ProvisionedThroughputOverride : output . ProvisionedThroughputOverride !== undefined && output . ProvisionedThroughputOverride !== null ? deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride ( output . ProvisionedThroughputOverride , context ) : undefined , RegionName : __expectString ( output . RegionName ) , ReplicaStatus : __expectString ( output . ReplicaStatus ) , ReplicaStatusDescription : __expectString ( output . ReplicaStatusDescription ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndex = ( output , context ) : AwsDynamoDbTableReplicaGlobalSecondaryIndex => { return { IndexName : __expectString ( output . IndexName ) , ProvisionedThroughputOverride : output . ProvisionedThroughputOverride !== undefined && output . ProvisionedThroughputOverride !== null ? deserializeAws_restJson1AwsDynamoDbTableProvisionedThroughputOverride ( output . ProvisionedThroughputOverride , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndexList = ( output , context ) : AwsDynamoDbTableReplicaGlobalSecondaryIndex [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableReplicaGlobalSecondaryIndex ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableReplicaList = ( output , context ) : AwsDynamoDbTableReplica [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsDynamoDbTableReplica ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsDynamoDbTableRestoreSummary = ( output , context ) : AwsDynamoDbTableRestoreSummary => { return { RestoreDateTime : __expectString ( output . RestoreDateTime ) , RestoreInProgress : __expectBoolean ( output . RestoreInProgress ) , SourceBackupArn : __expectString ( output . SourceBackupArn ) , SourceTableArn : __expectString ( output . SourceTableArn ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableSseDescription = ( output , context ) : AwsDynamoDbTableSseDescription => { return { InaccessibleEncryptionDateTime : __expectString ( output . InaccessibleEncryptionDateTime ) , KmsMasterKeyArn : __expectString ( output . KmsMasterKeyArn ) , SseType : __expectString ( output . SseType ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsDynamoDbTableStreamSpecification = ( output , context ) : AwsDynamoDbTableStreamSpecification => { return { StreamEnabled : __expectBoolean ( output . StreamEnabled ) , StreamViewType : __expectString ( output . StreamViewType ) , } as any ; } ; const deserializeAws_restJson1AwsEc2EipDetails = ( output , context ) : AwsEc2EipDetails => { return { AllocationId : __expectString ( output . AllocationId ) , AssociationId : __expectString ( output . AssociationId ) , Domain : __expectString ( output . Domain ) , InstanceId : __expectString ( output . InstanceId ) , NetworkBorderGroup : __expectString ( output . NetworkBorderGroup ) , NetworkInterfaceId : __expectString ( output . NetworkInterfaceId ) , NetworkInterfaceOwnerId : __expectString ( output . NetworkInterfaceOwnerId ) , PrivateIpAddress : __expectString ( output . PrivateIpAddress ) , PublicIp : __expectString ( output . PublicIp ) , PublicIpv4Pool : __expectString ( output . PublicIpv4Pool ) , } as any ; } ; const deserializeAws_restJson1AwsEc2InstanceDetails = ( output , context ) : AwsEc2InstanceDetails => { return { IamInstanceProfileArn : __expectString ( output . IamInstanceProfileArn ) , ImageId : __expectString ( output . ImageId ) , IpV4Addresses : output . IpV4Addresses !== undefined && output . IpV4Addresses !== null ? deserializeAws_restJson1StringList ( output . IpV4Addresses , context ) : undefined , IpV6Addresses : output . IpV6Addresses !== undefined && output . IpV6Addresses !== null ? deserializeAws_restJson1StringList ( output . IpV6Addresses , context ) : undefined , KeyName : __expectString ( output . KeyName ) , LaunchedAt : __expectString ( output . LaunchedAt ) , NetworkInterfaces : output . NetworkInterfaces !== undefined && output . NetworkInterfaces !== null ? deserializeAws_restJson1AwsEc2InstanceNetworkInterfacesList ( output . NetworkInterfaces , context ) : undefined , SubnetId : __expectString ( output . SubnetId ) , Type : __expectString ( output . Type ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2InstanceNetworkInterfacesDetails = ( output , context ) : AwsEc2InstanceNetworkInterfacesDetails => { return { NetworkInterfaceId : __expectString ( output . NetworkInterfaceId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2InstanceNetworkInterfacesList = ( output , context ) : AwsEc2InstanceNetworkInterfacesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2InstanceNetworkInterfacesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2NetworkAclAssociation = ( output , context ) : AwsEc2NetworkAclAssociation => { return { NetworkAclAssociationId : __expectString ( output . NetworkAclAssociationId ) , NetworkAclId : __expectString ( output . NetworkAclId ) , SubnetId : __expectString ( output . SubnetId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkAclAssociationList = ( output , context ) : AwsEc2NetworkAclAssociation [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2NetworkAclAssociation ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2NetworkAclDetails = ( output , context ) : AwsEc2NetworkAclDetails => { return { Associations : output . Associations !== undefined && output . Associations !== null ? deserializeAws_restJson1AwsEc2NetworkAclAssociationList ( output . Associations , context ) : undefined , Entries : output . Entries !== undefined && output . Entries !== null ? deserializeAws_restJson1AwsEc2NetworkAclEntryList ( output . Entries , context ) : undefined , IsDefault : __expectBoolean ( output . IsDefault ) , NetworkAclId : __expectString ( output . NetworkAclId ) , OwnerId : __expectString ( output . OwnerId ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkAclEntry = ( output , context ) : AwsEc2NetworkAclEntry => { return { CidrBlock : __expectString ( output . CidrBlock ) , Egress : __expectBoolean ( output . Egress ) , IcmpTypeCode : output . IcmpTypeCode !== undefined && output . IcmpTypeCode !== null ? deserializeAws_restJson1IcmpTypeCode ( output . IcmpTypeCode , context ) : undefined , Ipv6CidrBlock : __expectString ( output . Ipv6CidrBlock ) , PortRange : output . PortRange !== undefined && output . PortRange !== null ? deserializeAws_restJson1PortRangeFromTo ( output . PortRange , context ) : undefined , Protocol : __expectString ( output . Protocol ) , RuleAction : __expectString ( output . RuleAction ) , RuleNumber : __expectInt32 ( output . RuleNumber ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkAclEntryList = ( output , context ) : AwsEc2NetworkAclEntry [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2NetworkAclEntry ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceAttachment = ( output , context ) : AwsEc2NetworkInterfaceAttachment => { return { AttachTime : __expectString ( output . AttachTime ) , AttachmentId : __expectString ( output . AttachmentId ) , DeleteOnTermination : __expectBoolean ( output . DeleteOnTermination ) , DeviceIndex : __expectInt32 ( output . DeviceIndex ) , InstanceId : __expectString ( output . InstanceId ) , InstanceOwnerId : __expectString ( output . InstanceOwnerId ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceDetails = ( output , context ) : AwsEc2NetworkInterfaceDetails => { return { Attachment : output . Attachment !== undefined && output . Attachment !== null ? deserializeAws_restJson1AwsEc2NetworkInterfaceAttachment ( output . Attachment , context ) : undefined , IpV6Addresses : output . IpV6Addresses !== undefined && output . IpV6Addresses !== null ? deserializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressList ( output . IpV6Addresses , context ) : undefined , NetworkInterfaceId : __expectString ( output . NetworkInterfaceId ) , PrivateIpAddresses : output . PrivateIpAddresses !== undefined && output . PrivateIpAddresses !== null ? deserializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressList ( output . PrivateIpAddresses , context ) : undefined , PublicDnsName : __expectString ( output . PublicDnsName ) , PublicIp : __expectString ( output . PublicIp ) , SecurityGroups : output . SecurityGroups !== undefined && output . SecurityGroups !== null ? deserializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroupList ( output . SecurityGroups , context ) : undefined , SourceDestCheck : __expectBoolean ( output . SourceDestCheck ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressDetail = ( output , context ) : AwsEc2NetworkInterfaceIpV6AddressDetail => { return { IpV6Address : __expectString ( output . IpV6Address ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressList = ( output , context ) : AwsEc2NetworkInterfaceIpV6AddressDetail [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2NetworkInterfaceIpV6AddressDetail ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressDetail = ( output , context ) : AwsEc2NetworkInterfacePrivateIpAddressDetail => { return { PrivateDnsName : __expectString ( output . PrivateDnsName ) , PrivateIpAddress : __expectString ( output . PrivateIpAddress ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressList = ( output , context ) : AwsEc2NetworkInterfacePrivateIpAddressDetail [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2NetworkInterfacePrivateIpAddressDetail ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroup = ( output , context ) : AwsEc2NetworkInterfaceSecurityGroup => { return { GroupId : __expectString ( output . GroupId ) , GroupName : __expectString ( output . GroupName ) , } as any ; } ; const deserializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroupList = ( output , context ) : AwsEc2NetworkInterfaceSecurityGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2NetworkInterfaceSecurityGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupDetails = ( output , context ) : AwsEc2SecurityGroupDetails => { return { GroupId : __expectString ( output . GroupId ) , GroupName : __expectString ( output . GroupName ) , IpPermissions : output . IpPermissions !== undefined && output . IpPermissions !== null ? deserializeAws_restJson1AwsEc2SecurityGroupIpPermissionList ( output . IpPermissions , context ) : undefined , IpPermissionsEgress : output . IpPermissionsEgress !== undefined && output . IpPermissionsEgress !== null ? deserializeAws_restJson1AwsEc2SecurityGroupIpPermissionList ( output . IpPermissionsEgress , context ) : undefined , OwnerId : __expectString ( output . OwnerId ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpPermission = ( output , context ) : AwsEc2SecurityGroupIpPermission => { return { FromPort : __expectInt32 ( output . FromPort ) , IpProtocol : __expectString ( output . IpProtocol ) , IpRanges : output . IpRanges !== undefined && output . IpRanges !== null ? deserializeAws_restJson1AwsEc2SecurityGroupIpRangeList ( output . IpRanges , context ) : undefined , Ipv6Ranges : output . Ipv6Ranges !== undefined && output . Ipv6Ranges !== null ? deserializeAws_restJson1AwsEc2SecurityGroupIpv6RangeList ( output . Ipv6Ranges , context ) : undefined , PrefixListIds : output . PrefixListIds !== undefined && output . PrefixListIds !== null ? deserializeAws_restJson1AwsEc2SecurityGroupPrefixListIdList ( output . PrefixListIds , context ) : undefined , ToPort : __expectInt32 ( output . ToPort ) , UserIdGroupPairs : output . UserIdGroupPairs !== undefined && output . UserIdGroupPairs !== null ? deserializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPairList ( output . UserIdGroupPairs , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpPermissionList = ( output , context ) : AwsEc2SecurityGroupIpPermission [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2SecurityGroupIpPermission ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpRange = ( output , context ) : AwsEc2SecurityGroupIpRange => { return { CidrIp : __expectString ( output . CidrIp ) , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpRangeList = ( output , context ) : AwsEc2SecurityGroupIpRange [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2SecurityGroupIpRange ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpv6Range = ( output , context ) : AwsEc2SecurityGroupIpv6Range => { return { CidrIpv6 : __expectString ( output . CidrIpv6 ) , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupIpv6RangeList = ( output , context ) : AwsEc2SecurityGroupIpv6Range [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2SecurityGroupIpv6Range ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupPrefixListId = ( output , context ) : AwsEc2SecurityGroupPrefixListId => { return { PrefixListId : __expectString ( output . PrefixListId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupPrefixListIdList = ( output , context ) : AwsEc2SecurityGroupPrefixListId [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2SecurityGroupPrefixListId ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPair = ( output , context ) : AwsEc2SecurityGroupUserIdGroupPair => { return { GroupId : __expectString ( output . GroupId ) , GroupName : __expectString ( output . GroupName ) , PeeringStatus : __expectString ( output . PeeringStatus ) , UserId : __expectString ( output . UserId ) , VpcId : __expectString ( output . VpcId ) , VpcPeeringConnectionId : __expectString ( output . VpcPeeringConnectionId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPairList = ( output , context ) : AwsEc2SecurityGroupUserIdGroupPair [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2SecurityGroupUserIdGroupPair ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2SubnetDetails = ( output , context ) : AwsEc2SubnetDetails => { return { AssignIpv6AddressOnCreation : __expectBoolean ( output . AssignIpv6AddressOnCreation ) , AvailabilityZone : __expectString ( output . AvailabilityZone ) , AvailabilityZoneId : __expectString ( output . AvailabilityZoneId ) , AvailableIpAddressCount : __expectInt32 ( output . AvailableIpAddressCount ) , CidrBlock : __expectString ( output . CidrBlock ) , DefaultForAz : __expectBoolean ( output . DefaultForAz ) , Ipv6CidrBlockAssociationSet : output . Ipv6CidrBlockAssociationSet !== undefined && output . Ipv6CidrBlockAssociationSet !== null ? deserializeAws_restJson1Ipv6CidrBlockAssociationList ( output . Ipv6CidrBlockAssociationSet , context ) : undefined , MapPublicIpOnLaunch : __expectBoolean ( output . MapPublicIpOnLaunch ) , OwnerId : __expectString ( output . OwnerId ) , State : __expectString ( output . State ) , SubnetArn : __expectString ( output . SubnetArn ) , SubnetId : __expectString ( output . SubnetId ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VolumeAttachment = ( output , context ) : AwsEc2VolumeAttachment => { return { AttachTime : __expectString ( output . AttachTime ) , DeleteOnTermination : __expectBoolean ( output . DeleteOnTermination ) , InstanceId : __expectString ( output . InstanceId ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VolumeAttachmentList = ( output , context ) : AwsEc2VolumeAttachment [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2VolumeAttachment ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2VolumeDetails = ( output , context ) : AwsEc2VolumeDetails => { return { Attachments : output . Attachments !== undefined && output . Attachments !== null ? deserializeAws_restJson1AwsEc2VolumeAttachmentList ( output . Attachments , context ) : undefined , CreateTime : __expectString ( output . CreateTime ) , Encrypted : __expectBoolean ( output . Encrypted ) , KmsKeyId : __expectString ( output . KmsKeyId ) , Size : __expectInt32 ( output . Size ) , SnapshotId : __expectString ( output . SnapshotId ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpcDetails = ( output , context ) : AwsEc2VpcDetails => { return { CidrBlockAssociationSet : output . CidrBlockAssociationSet !== undefined && output . CidrBlockAssociationSet !== null ? deserializeAws_restJson1CidrBlockAssociationList ( output . CidrBlockAssociationSet , context ) : undefined , DhcpOptionsId : __expectString ( output . DhcpOptionsId ) , Ipv6CidrBlockAssociationSet : output . Ipv6CidrBlockAssociationSet !== undefined && output . Ipv6CidrBlockAssociationSet !== null ? deserializeAws_restJson1Ipv6CidrBlockAssociationList ( output . Ipv6CidrBlockAssociationSet , context ) : undefined , State : __expectString ( output . State ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpcEndpointServiceDetails = ( output , context ) : AwsEc2VpcEndpointServiceDetails => { return { AcceptanceRequired : __expectBoolean ( output . AcceptanceRequired ) , AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1NonEmptyStringList ( output . AvailabilityZones , context ) : undefined , BaseEndpointDnsNames : output . BaseEndpointDnsNames !== undefined && output . BaseEndpointDnsNames !== null ? deserializeAws_restJson1NonEmptyStringList ( output . BaseEndpointDnsNames , context ) : undefined , GatewayLoadBalancerArns : output . GatewayLoadBalancerArns !== undefined && output . GatewayLoadBalancerArns !== null ? deserializeAws_restJson1NonEmptyStringList ( output . GatewayLoadBalancerArns , context ) : undefined , ManagesVpcEndpoints : __expectBoolean ( output . ManagesVpcEndpoints ) , NetworkLoadBalancerArns : output . NetworkLoadBalancerArns !== undefined && output . NetworkLoadBalancerArns !== null ? deserializeAws_restJson1NonEmptyStringList ( output . NetworkLoadBalancerArns , context ) : undefined , PrivateDnsName : __expectString ( output . PrivateDnsName ) , ServiceId : __expectString ( output . ServiceId ) , ServiceName : __expectString ( output . ServiceName ) , ServiceState : __expectString ( output . ServiceState ) , ServiceType : output . ServiceType !== undefined && output . ServiceType !== null ? deserializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeList ( output . ServiceType , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeDetails = ( output , context ) : AwsEc2VpcEndpointServiceServiceTypeDetails => { return { ServiceType : __expectString ( output . ServiceType ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeList = ( output , context ) : AwsEc2VpcEndpointServiceServiceTypeDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2VpcEndpointServiceServiceTypeDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionDetails = ( output , context ) : AwsEc2VpnConnectionDetails => { return { Category : __expectString ( output . Category ) , CustomerGatewayConfiguration : __expectString ( output . CustomerGatewayConfiguration ) , CustomerGatewayId : __expectString ( output . CustomerGatewayId ) , Options : output . Options !== undefined && output . Options !== null ? deserializeAws_restJson1AwsEc2VpnConnectionOptionsDetails ( output . Options , context ) : undefined , Routes : output . Routes !== undefined && output . Routes !== null ? deserializeAws_restJson1AwsEc2VpnConnectionRoutesList ( output . Routes , context ) : undefined , State : __expectString ( output . State ) , TransitGatewayId : __expectString ( output . TransitGatewayId ) , Type : __expectString ( output . Type ) , VgwTelemetry : output . VgwTelemetry !== undefined && output . VgwTelemetry !== null ? deserializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryList ( output . VgwTelemetry , context ) : undefined , VpnConnectionId : __expectString ( output . VpnConnectionId ) , VpnGatewayId : __expectString ( output . VpnGatewayId ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionOptionsDetails = ( output , context ) : AwsEc2VpnConnectionOptionsDetails => { return { StaticRoutesOnly : __expectBoolean ( output . StaticRoutesOnly ) , TunnelOptions : output . TunnelOptions !== undefined && output . TunnelOptions !== null ? deserializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsList ( output . TunnelOptions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsDetails = ( output , context ) : AwsEc2VpnConnectionOptionsTunnelOptionsDetails => { return { DpdTimeoutSeconds : __expectInt32 ( output . DpdTimeoutSeconds ) , IkeVersions : output . IkeVersions !== undefined && output . IkeVersions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . IkeVersions , context ) : undefined , OutsideIpAddress : __expectString ( output . OutsideIpAddress ) , Phase1DhGroupNumbers : output . Phase1DhGroupNumbers !== undefined && output . Phase1DhGroupNumbers !== null ? deserializeAws_restJson1IntegerList ( output . Phase1DhGroupNumbers , context ) : undefined , Phase1EncryptionAlgorithms : output . Phase1EncryptionAlgorithms !== undefined && output . Phase1EncryptionAlgorithms !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Phase1EncryptionAlgorithms , context ) : undefined , Phase1IntegrityAlgorithms : output . Phase1IntegrityAlgorithms !== undefined && output . Phase1IntegrityAlgorithms !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Phase1IntegrityAlgorithms , context ) : undefined , Phase1LifetimeSeconds : __expectInt32 ( output . Phase1LifetimeSeconds ) , Phase2DhGroupNumbers : output . Phase2DhGroupNumbers !== undefined && output . Phase2DhGroupNumbers !== null ? deserializeAws_restJson1IntegerList ( output . Phase2DhGroupNumbers , context ) : undefined , Phase2EncryptionAlgorithms : output . Phase2EncryptionAlgorithms !== undefined && output . Phase2EncryptionAlgorithms !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Phase2EncryptionAlgorithms , context ) : undefined , Phase2IntegrityAlgorithms : output . Phase2IntegrityAlgorithms !== undefined && output . Phase2IntegrityAlgorithms !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Phase2IntegrityAlgorithms , context ) : undefined , Phase2LifetimeSeconds : __expectInt32 ( output . Phase2LifetimeSeconds ) , PreSharedKey : __expectString ( output . PreSharedKey ) , RekeyFuzzPercentage : __expectInt32 ( output . RekeyFuzzPercentage ) , RekeyMarginTimeSeconds : __expectInt32 ( output . RekeyMarginTimeSeconds ) , ReplayWindowSize : __expectInt32 ( output . ReplayWindowSize ) , TunnelInsideCidr : __expectString ( output . TunnelInsideCidr ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsList = ( output , context ) : AwsEc2VpnConnectionOptionsTunnelOptionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2VpnConnectionOptionsTunnelOptionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionRoutesDetails = ( output , context ) : AwsEc2VpnConnectionRoutesDetails => { return { DestinationCidrBlock : __expectString ( output . DestinationCidrBlock ) , State : __expectString ( output . State ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionRoutesList = ( output , context ) : AwsEc2VpnConnectionRoutesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2VpnConnectionRoutesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryDetails = ( output , context ) : AwsEc2VpnConnectionVgwTelemetryDetails => { return { AcceptedRouteCount : __expectInt32 ( output . AcceptedRouteCount ) , CertificateArn : __expectString ( output . CertificateArn ) , LastStatusChange : __expectString ( output . LastStatusChange ) , OutsideIpAddress : __expectString ( output . OutsideIpAddress ) , Status : __expectString ( output . Status ) , StatusMessage : __expectString ( output . StatusMessage ) , } as any ; } ; const deserializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryList = ( output , context ) : AwsEc2VpnConnectionVgwTelemetryDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEc2VpnConnectionVgwTelemetryDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcrContainerImageDetails = ( output , context ) : AwsEcrContainerImageDetails => { return { Architecture : __expectString ( output . Architecture ) , ImageDigest : __expectString ( output . ImageDigest ) , ImagePublishedAt : __expectString ( output . ImagePublishedAt ) , ImageTags : output . ImageTags !== undefined && output . ImageTags !== null ? deserializeAws_restJson1NonEmptyStringList ( output . ImageTags , context ) : undefined , RegistryId : __expectString ( output . RegistryId ) , RepositoryName : __expectString ( output . RepositoryName ) , } as any ; } ; const deserializeAws_restJson1AwsEcrRepositoryDetails = ( output , context ) : AwsEcrRepositoryDetails => { return { Arn : __expectString ( output . Arn ) , ImageScanningConfiguration : output . ImageScanningConfiguration !== undefined && output . ImageScanningConfiguration !== null ? deserializeAws_restJson1AwsEcrRepositoryImageScanningConfigurationDetails ( output . ImageScanningConfiguration , context ) : undefined , ImageTagMutability : __expectString ( output . ImageTagMutability ) , LifecyclePolicy : output . LifecyclePolicy !== undefined && output . LifecyclePolicy !== null ? deserializeAws_restJson1AwsEcrRepositoryLifecyclePolicyDetails ( output . LifecyclePolicy , context ) : undefined , RepositoryName : __expectString ( output . RepositoryName ) , RepositoryPolicyText : __expectString ( output . RepositoryPolicyText ) , } as any ; } ; const deserializeAws_restJson1AwsEcrRepositoryImageScanningConfigurationDetails = ( output , context ) : AwsEcrRepositoryImageScanningConfigurationDetails => { return { ScanOnPush : __expectBoolean ( output . ScanOnPush ) , } as any ; } ; const deserializeAws_restJson1AwsEcrRepositoryLifecyclePolicyDetails = ( output , context ) : AwsEcrRepositoryLifecyclePolicyDetails => { return { LifecyclePolicyText : __expectString ( output . LifecyclePolicyText ) , RegistryId : __expectString ( output . RegistryId ) , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterClusterSettingsDetails = ( output , context ) : AwsEcsClusterClusterSettingsDetails => { return { Name : __expectString ( output . Name ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterClusterSettingsList = ( output , context ) : AwsEcsClusterClusterSettingsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsClusterClusterSettingsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsClusterConfigurationDetails = ( output , context ) : AwsEcsClusterConfigurationDetails => { return { ExecuteCommandConfiguration : output . ExecuteCommandConfiguration !== undefined && output . ExecuteCommandConfiguration !== null ? deserializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationDetails ( output . ExecuteCommandConfiguration , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationDetails = ( output , context ) : AwsEcsClusterConfigurationExecuteCommandConfigurationDetails => { return { KmsKeyId : __expectString ( output . KmsKeyId ) , LogConfiguration : output . LogConfiguration !== undefined && output . LogConfiguration !== null ? deserializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails ( output . LogConfiguration , context ) : undefined , Logging : __expectString ( output . Logging ) , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails = ( output , context ) : AwsEcsClusterConfigurationExecuteCommandConfigurationLogConfigurationDetails => { return { CloudWatchEncryptionEnabled : __expectBoolean ( output . CloudWatchEncryptionEnabled ) , CloudWatchLogGroupName : __expectString ( output . CloudWatchLogGroupName ) , S3BucketName : __expectString ( output . S3BucketName ) , S3EncryptionEnabled : __expectBoolean ( output . S3EncryptionEnabled ) , S3KeyPrefix : __expectString ( output . S3KeyPrefix ) , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyDetails = ( output , context ) : AwsEcsClusterDefaultCapacityProviderStrategyDetails => { return { Base : __expectInt32 ( output . Base ) , CapacityProvider : __expectString ( output . CapacityProvider ) , Weight : __expectInt32 ( output . Weight ) , } as any ; } ; const deserializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyList = ( output , context ) : AwsEcsClusterDefaultCapacityProviderStrategyDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsClusterDetails = ( output , context ) : AwsEcsClusterDetails => { return { CapacityProviders : output . CapacityProviders !== undefined && output . CapacityProviders !== null ? deserializeAws_restJson1NonEmptyStringList ( output . CapacityProviders , context ) : undefined , ClusterSettings : output . ClusterSettings !== undefined && output . ClusterSettings !== null ? deserializeAws_restJson1AwsEcsClusterClusterSettingsList ( output . ClusterSettings , context ) : undefined , Configuration : output . Configuration !== undefined && output . Configuration !== null ? deserializeAws_restJson1AwsEcsClusterConfigurationDetails ( output . Configuration , context ) : undefined , DefaultCapacityProviderStrategy : output . DefaultCapacityProviderStrategy !== undefined && output . DefaultCapacityProviderStrategy !== null ? deserializeAws_restJson1AwsEcsClusterDefaultCapacityProviderStrategyList ( output . DefaultCapacityProviderStrategy , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceCapacityProviderStrategyDetails = ( output , context ) : AwsEcsServiceCapacityProviderStrategyDetails => { return { Base : __expectInt32 ( output . Base ) , CapacityProvider : __expectString ( output . CapacityProvider ) , Weight : __expectInt32 ( output . Weight ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceCapacityProviderStrategyList = ( output , context ) : AwsEcsServiceCapacityProviderStrategyDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsServiceCapacityProviderStrategyDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails = ( output , context ) : AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails => { return { Enable : __expectBoolean ( output . Enable ) , Rollback : __expectBoolean ( output . Rollback ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceDeploymentConfigurationDetails = ( output , context ) : AwsEcsServiceDeploymentConfigurationDetails => { return { DeploymentCircuitBreaker : output . DeploymentCircuitBreaker !== undefined && output . DeploymentCircuitBreaker !== null ? deserializeAws_restJson1AwsEcsServiceDeploymentConfigurationDeploymentCircuitBreakerDetails ( output . DeploymentCircuitBreaker , context ) : undefined , MaximumPercent : __expectInt32 ( output . MaximumPercent ) , MinimumHealthyPercent : __expectInt32 ( output . MinimumHealthyPercent ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceDeploymentControllerDetails = ( output , context ) : AwsEcsServiceDeploymentControllerDetails => { return { Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceDetails = ( output , context ) : AwsEcsServiceDetails => { return { CapacityProviderStrategy : output . CapacityProviderStrategy !== undefined && output . CapacityProviderStrategy !== null ? deserializeAws_restJson1AwsEcsServiceCapacityProviderStrategyList ( output . CapacityProviderStrategy , context ) : undefined , Cluster : __expectString ( output . Cluster ) , DeploymentConfiguration : output . DeploymentConfiguration !== undefined && output . DeploymentConfiguration !== null ? deserializeAws_restJson1AwsEcsServiceDeploymentConfigurationDetails ( output . DeploymentConfiguration , context ) : undefined , DeploymentController : output . DeploymentController !== undefined && output . DeploymentController !== null ? deserializeAws_restJson1AwsEcsServiceDeploymentControllerDetails ( output . DeploymentController , context ) : undefined , DesiredCount : __expectInt32 ( output . DesiredCount ) , EnableEcsManagedTags : __expectBoolean ( output . EnableEcsManagedTags ) , EnableExecuteCommand : __expectBoolean ( output . EnableExecuteCommand ) , HealthCheckGracePeriodSeconds : __expectInt32 ( output . HealthCheckGracePeriodSeconds ) , LaunchType : __expectString ( output . LaunchType ) , LoadBalancers : output . LoadBalancers !== undefined && output . LoadBalancers !== null ? deserializeAws_restJson1AwsEcsServiceLoadBalancersList ( output . LoadBalancers , context ) : undefined , Name : __expectString ( output . Name ) , NetworkConfiguration : output . NetworkConfiguration !== undefined && output . NetworkConfiguration !== null ? deserializeAws_restJson1AwsEcsServiceNetworkConfigurationDetails ( output . NetworkConfiguration , context ) : undefined , PlacementConstraints : output . PlacementConstraints !== undefined && output . PlacementConstraints !== null ? deserializeAws_restJson1AwsEcsServicePlacementConstraintsList ( output . PlacementConstraints , context ) : undefined , PlacementStrategies : output . PlacementStrategies !== undefined && output . PlacementStrategies !== null ? deserializeAws_restJson1AwsEcsServicePlacementStrategiesList ( output . PlacementStrategies , context ) : undefined , PlatformVersion : __expectString ( output . PlatformVersion ) , PropagateTags : __expectString ( output . PropagateTags ) , Role : __expectString ( output . Role ) , SchedulingStrategy : __expectString ( output . SchedulingStrategy ) , ServiceArn : __expectString ( output . ServiceArn ) , ServiceName : __expectString ( output . ServiceName ) , ServiceRegistries : output . ServiceRegistries !== undefined && output . ServiceRegistries !== null ? deserializeAws_restJson1AwsEcsServiceServiceRegistriesList ( output . ServiceRegistries , context ) : undefined , TaskDefinition : __expectString ( output . TaskDefinition ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceLoadBalancersDetails = ( output , context ) : AwsEcsServiceLoadBalancersDetails => { return { ContainerName : __expectString ( output . ContainerName ) , ContainerPort : __expectInt32 ( output . ContainerPort ) , LoadBalancerName : __expectString ( output . LoadBalancerName ) , TargetGroupArn : __expectString ( output . TargetGroupArn ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceLoadBalancersList = ( output , context ) : AwsEcsServiceLoadBalancersDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsServiceLoadBalancersDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails = ( output , context ) : AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails => { return { AssignPublicIp : __expectString ( output . AssignPublicIp ) , SecurityGroups : output . SecurityGroups !== undefined && output . SecurityGroups !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroups , context ) : undefined , Subnets : output . Subnets !== undefined && output . Subnets !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Subnets , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceNetworkConfigurationDetails = ( output , context ) : AwsEcsServiceNetworkConfigurationDetails => { return { AwsVpcConfiguration : output . AwsVpcConfiguration !== undefined && output . AwsVpcConfiguration !== null ? deserializeAws_restJson1AwsEcsServiceNetworkConfigurationAwsVpcConfigurationDetails ( output . AwsVpcConfiguration , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsServicePlacementConstraintsDetails = ( output , context ) : AwsEcsServicePlacementConstraintsDetails => { return { Expression : __expectString ( output . Expression ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServicePlacementConstraintsList = ( output , context ) : AwsEcsServicePlacementConstraintsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsServicePlacementConstraintsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsServicePlacementStrategiesDetails = ( output , context ) : AwsEcsServicePlacementStrategiesDetails => { return { Field : __expectString ( output . Field ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServicePlacementStrategiesList = ( output , context ) : AwsEcsServicePlacementStrategiesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsServicePlacementStrategiesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsServiceServiceRegistriesDetails = ( output , context ) : AwsEcsServiceServiceRegistriesDetails => { return { ContainerName : __expectString ( output . ContainerName ) , ContainerPort : __expectInt32 ( output . ContainerPort ) , Port : __expectInt32 ( output . Port ) , RegistryArn : __expectString ( output . RegistryArn ) , } as any ; } ; const deserializeAws_restJson1AwsEcsServiceServiceRegistriesList = ( output , context ) : AwsEcsServiceServiceRegistriesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsServiceServiceRegistriesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails => { return { Condition : __expectString ( output . Condition ) , ContainerName : __expectString ( output . ContainerName ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsDetails => { return { Command : output . Command !== undefined && output . Command !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Command , context ) : undefined , Cpu : __expectInt32 ( output . Cpu ) , DependsOn : output . DependsOn !== undefined && output . DependsOn !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDependsOnList ( output . DependsOn , context ) : undefined , DisableNetworking : __expectBoolean ( output . DisableNetworking ) , DnsSearchDomains : output . DnsSearchDomains !== undefined && output . DnsSearchDomains !== null ? deserializeAws_restJson1NonEmptyStringList ( output . DnsSearchDomains , context ) : undefined , DnsServers : output . DnsServers !== undefined && output . DnsServers !== null ? deserializeAws_restJson1NonEmptyStringList ( output . DnsServers , context ) : undefined , DockerLabels : output . DockerLabels !== undefined && output . DockerLabels !== null ? deserializeAws_restJson1FieldMap ( output . DockerLabels , context ) : undefined , DockerSecurityOptions : output . DockerSecurityOptions !== undefined && output . DockerSecurityOptions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . DockerSecurityOptions , context ) : undefined , EntryPoint : output . EntryPoint !== undefined && output . EntryPoint !== null ? deserializeAws_restJson1NonEmptyStringList ( output . EntryPoint , context ) : undefined , Environment : output . Environment !== undefined && output . Environment !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentList ( output . Environment , context ) : undefined , EnvironmentFiles : output . EnvironmentFiles !== undefined && output . EnvironmentFiles !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList ( output . EnvironmentFiles , context ) : undefined , Essential : __expectBoolean ( output . Essential ) , ExtraHosts : output . ExtraHosts !== undefined && output . ExtraHosts !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsList ( output . ExtraHosts , context ) : undefined , FirelensConfiguration : output . FirelensConfiguration !== undefined && output . FirelensConfiguration !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails ( output . FirelensConfiguration , context ) : undefined , HealthCheck : output . HealthCheck !== undefined && output . HealthCheck !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails ( output . HealthCheck , context ) : undefined , Hostname : __expectString ( output . Hostname ) , Image : __expectString ( output . Image ) , Interactive : __expectBoolean ( output . Interactive ) , Links : output . Links !== undefined && output . Links !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Links , context ) : undefined , LinuxParameters : output . LinuxParameters !== undefined && output . LinuxParameters !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails ( output . LinuxParameters , context ) : undefined , LogConfiguration : output . LogConfiguration !== undefined && output . LogConfiguration !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails ( output . LogConfiguration , context ) : undefined , Memory : __expectInt32 ( output . Memory ) , MemoryReservation : __expectInt32 ( output . MemoryReservation ) , MountPoints : output . MountPoints !== undefined && output . MountPoints !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsList ( output . MountPoints , context ) : undefined , Name : __expectString ( output . Name ) , PortMappings : output . PortMappings !== undefined && output . PortMappings !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsList ( output . PortMappings , context ) : undefined , Privileged : __expectBoolean ( output . Privileged ) , PseudoTerminal : __expectBoolean ( output . PseudoTerminal ) , ReadonlyRootFilesystem : __expectBoolean ( output . ReadonlyRootFilesystem ) , RepositoryCredentials : output . RepositoryCredentials !== undefined && output . RepositoryCredentials !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails ( output . RepositoryCredentials , context ) : undefined , ResourceRequirements : output . ResourceRequirements !== undefined && output . ResourceRequirements !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList ( output . ResourceRequirements , context ) : undefined , Secrets : output . Secrets !== undefined && output . Secrets !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsList ( output . Secrets , context ) : undefined , StartTimeout : __expectInt32 ( output . StartTimeout ) , StopTimeout : __expectInt32 ( output . StopTimeout ) , SystemControls : output . SystemControls !== undefined && output . SystemControls !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsList ( output . SystemControls , context ) : undefined , Ulimits : output . Ulimits !== undefined && output . Ulimits !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsList ( output . Ulimits , context ) : undefined , User : __expectString ( output . User ) , VolumesFrom : output . VolumesFrom !== undefined && output . VolumesFrom !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromList ( output . VolumesFrom , context ) : undefined , WorkingDirectory : __expectString ( output . WorkingDirectory ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails => { return { Name : __expectString ( output . Name ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails => { return { Type : __expectString ( output . Type ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentFilesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsEnvironmentDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails => { return { Hostname : __expectString ( output . Hostname ) , IpAddress : __expectString ( output . IpAddress ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsExtraHostsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsFirelensConfigurationDetails => { return { Options : output . Options !== undefined && output . Options !== null ? deserializeAws_restJson1FieldMap ( output . Options , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsHealthCheckDetails => { return { Command : output . Command !== undefined && output . Command !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Command , context ) : undefined , Interval : __expectInt32 ( output . Interval ) , Retries : __expectInt32 ( output . Retries ) , StartPeriod : __expectInt32 ( output . StartPeriod ) , Timeout : __expectInt32 ( output . Timeout ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails => { return { Add : output . Add !== undefined && output . Add !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Add , context ) : undefined , Drop : output . Drop !== undefined && output . Drop !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Drop , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDetails => { return { Capabilities : output . Capabilities !== undefined && output . Capabilities !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersCapabilitiesDetails ( output . Capabilities , context ) : undefined , Devices : output . Devices !== undefined && output . Devices !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList ( output . Devices , context ) : undefined , InitProcessEnabled : __expectBoolean ( output . InitProcessEnabled ) , MaxSwap : __expectInt32 ( output . MaxSwap ) , SharedMemorySize : __expectInt32 ( output . SharedMemorySize ) , Swappiness : __expectInt32 ( output . Swappiness ) , Tmpfs : output . Tmpfs !== undefined && output . Tmpfs !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList ( output . Tmpfs , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails => { return { ContainerPath : __expectString ( output . ContainerPath ) , HostPath : __expectString ( output . HostPath ) , Permissions : output . Permissions !== undefined && output . Permissions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Permissions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersDevicesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails => { return { ContainerPath : __expectString ( output . ContainerPath ) , MountOptions : output . MountOptions !== undefined && output . MountOptions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . MountOptions , context ) : undefined , Size : __expectInt32 ( output . Size ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLinuxParametersTmpfsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails => { return { LogDriver : __expectString ( output . LogDriver ) , Options : output . Options !== undefined && output . Options !== null ? deserializeAws_restJson1FieldMap ( output . Options , context ) : undefined , SecretOptions : output . SecretOptions !== undefined && output . SecretOptions !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList ( output . SecretOptions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails => { return { Name : __expectString ( output . Name ) , ValueFrom : __expectString ( output . ValueFrom ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails => { return { ContainerPath : __expectString ( output . ContainerPath ) , ReadOnly : __expectBoolean ( output . ReadOnly ) , SourceVolume : __expectString ( output . SourceVolume ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsMountPointsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails => { return { ContainerPort : __expectInt32 ( output . ContainerPort ) , HostPort : __expectInt32 ( output . HostPort ) , Protocol : __expectString ( output . Protocol ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsPortMappingsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsRepositoryCredentialsDetails => { return { CredentialsParameter : __expectString ( output . CredentialsParameter ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails => { return { Type : __expectString ( output . Type ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsResourceRequirementsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails => { return { Name : __expectString ( output . Name ) , ValueFrom : __expectString ( output . ValueFrom ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSecretsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails => { return { Namespace : __expectString ( output . Namespace ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsSystemControlsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails => { return { HardLimit : __expectInt32 ( output . HardLimit ) , Name : __expectString ( output . Name ) , SoftLimit : __expectInt32 ( output . SoftLimit ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsUlimitsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails => { return { ReadOnly : __expectBoolean ( output . ReadOnly ) , SourceContainer : __expectString ( output . SourceContainer ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromList = ( output , context ) : AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsVolumesFromDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionDetails = ( output , context ) : AwsEcsTaskDefinitionDetails => { return { ContainerDefinitions : output . ContainerDefinitions !== undefined && output . ContainerDefinitions !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionContainerDefinitionsList ( output . ContainerDefinitions , context ) : undefined , Cpu : __expectString ( output . Cpu ) , ExecutionRoleArn : __expectString ( output . ExecutionRoleArn ) , Family : __expectString ( output . Family ) , InferenceAccelerators : output . InferenceAccelerators !== undefined && output . InferenceAccelerators !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsList ( output . InferenceAccelerators , context ) : undefined , IpcMode : __expectString ( output . IpcMode ) , Memory : __expectString ( output . Memory ) , NetworkMode : __expectString ( output . NetworkMode ) , PidMode : __expectString ( output . PidMode ) , PlacementConstraints : output . PlacementConstraints !== undefined && output . PlacementConstraints !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsList ( output . PlacementConstraints , context ) : undefined , ProxyConfiguration : output . ProxyConfiguration !== undefined && output . ProxyConfiguration !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationDetails ( output . ProxyConfiguration , context ) : undefined , RequiresCompatibilities : output . RequiresCompatibilities !== undefined && output . RequiresCompatibilities !== null ? deserializeAws_restJson1NonEmptyStringList ( output . RequiresCompatibilities , context ) : undefined , TaskRoleArn : __expectString ( output . TaskRoleArn ) , Volumes : output . Volumes !== undefined && output . Volumes !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionVolumesList ( output . Volumes , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsDetails = ( output , context ) : AwsEcsTaskDefinitionInferenceAcceleratorsDetails => { return { DeviceName : __expectString ( output . DeviceName ) , DeviceType : __expectString ( output . DeviceType ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsList = ( output , context ) : AwsEcsTaskDefinitionInferenceAcceleratorsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionInferenceAcceleratorsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsDetails = ( output , context ) : AwsEcsTaskDefinitionPlacementConstraintsDetails => { return { Expression : __expectString ( output . Expression ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsList = ( output , context ) : AwsEcsTaskDefinitionPlacementConstraintsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionPlacementConstraintsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationDetails = ( output , context ) : AwsEcsTaskDefinitionProxyConfigurationDetails => { return { ContainerName : __expectString ( output . ContainerName ) , ProxyConfigurationProperties : output . ProxyConfigurationProperties !== undefined && output . ProxyConfigurationProperties !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList ( output . ProxyConfigurationProperties , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails = ( output , context ) : AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails => { return { Name : __expectString ( output . Name ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesList = ( output , context ) : AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionProxyConfigurationProxyConfigurationPropertiesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesDetails = ( output , context ) : AwsEcsTaskDefinitionVolumesDetails => { return { DockerVolumeConfiguration : output . DockerVolumeConfiguration !== undefined && output . DockerVolumeConfiguration !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails ( output . DockerVolumeConfiguration , context ) : undefined , EfsVolumeConfiguration : output . EfsVolumeConfiguration !== undefined && output . EfsVolumeConfiguration !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails ( output . EfsVolumeConfiguration , context ) : undefined , Host : output . Host !== undefined && output . Host !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionVolumesHostDetails ( output . Host , context ) : undefined , Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails = ( output , context ) : AwsEcsTaskDefinitionVolumesDockerVolumeConfigurationDetails => { return { Autoprovision : __expectBoolean ( output . Autoprovision ) , Driver : __expectString ( output . Driver ) , DriverOpts : output . DriverOpts !== undefined && output . DriverOpts !== null ? deserializeAws_restJson1FieldMap ( output . DriverOpts , context ) : undefined , Labels : output . Labels !== undefined && output . Labels !== null ? deserializeAws_restJson1FieldMap ( output . Labels , context ) : undefined , Scope : __expectString ( output . Scope ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails = ( output , context ) : AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails => { return { AccessPointId : __expectString ( output . AccessPointId ) , Iam : __expectString ( output . Iam ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails = ( output , context ) : AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails => { return { AuthorizationConfig : output . AuthorizationConfig !== undefined && output . AuthorizationConfig !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails ( output . AuthorizationConfig , context ) : undefined , FilesystemId : __expectString ( output . FilesystemId ) , RootDirectory : __expectString ( output . RootDirectory ) , TransitEncryption : __expectString ( output . TransitEncryption ) , TransitEncryptionPort : __expectInt32 ( output . TransitEncryptionPort ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesHostDetails = ( output , context ) : AwsEcsTaskDefinitionVolumesHostDetails => { return { SourcePath : __expectString ( output . SourcePath ) , } as any ; } ; const deserializeAws_restJson1AwsEcsTaskDefinitionVolumesList = ( output , context ) : AwsEcsTaskDefinitionVolumesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEcsTaskDefinitionVolumesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEksClusterDetails = ( output , context ) : AwsEksClusterDetails => { return { Arn : __expectString ( output . Arn ) , CertificateAuthorityData : __expectString ( output . CertificateAuthorityData ) , ClusterStatus : __expectString ( output . ClusterStatus ) , Endpoint : __expectString ( output . Endpoint ) , Logging : output . Logging !== undefined && output . Logging !== null ? deserializeAws_restJson1AwsEksClusterLoggingDetails ( output . Logging , context ) : undefined , Name : __expectString ( output . Name ) , ResourcesVpcConfig : output . ResourcesVpcConfig !== undefined && output . ResourcesVpcConfig !== null ? deserializeAws_restJson1AwsEksClusterResourcesVpcConfigDetails ( output . ResourcesVpcConfig , context ) : undefined , RoleArn : __expectString ( output . RoleArn ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsEksClusterLoggingClusterLoggingDetails = ( output , context ) : AwsEksClusterLoggingClusterLoggingDetails => { return { Enabled : __expectBoolean ( output . Enabled ) , Types : output . Types !== undefined && output . Types !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Types , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEksClusterLoggingClusterLoggingList = ( output , context ) : AwsEksClusterLoggingClusterLoggingDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsEksClusterLoggingClusterLoggingDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsEksClusterLoggingDetails = ( output , context ) : AwsEksClusterLoggingDetails => { return { ClusterLogging : output . ClusterLogging !== undefined && output . ClusterLogging !== null ? deserializeAws_restJson1AwsEksClusterLoggingClusterLoggingList ( output . ClusterLogging , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsEksClusterResourcesVpcConfigDetails = ( output , context ) : AwsEksClusterResourcesVpcConfigDetails => { return { SecurityGroupIds : output . SecurityGroupIds !== undefined && output . SecurityGroupIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroupIds , context ) : undefined , SubnetIds : output . SubnetIds !== undefined && output . SubnetIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SubnetIds , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentDetails = ( output , context ) : AwsElasticBeanstalkEnvironmentDetails => { return { ApplicationName : __expectString ( output . ApplicationName ) , Cname : __expectString ( output . Cname ) , DateCreated : __expectString ( output . DateCreated ) , DateUpdated : __expectString ( output . DateUpdated ) , Description : __expectString ( output . Description ) , EndpointUrl : __expectString ( output . EndpointUrl ) , EnvironmentArn : __expectString ( output . EnvironmentArn ) , EnvironmentId : __expectString ( output . EnvironmentId ) , EnvironmentLinks : output . EnvironmentLinks !== undefined && output . EnvironmentLinks !== null ? deserializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLinks ( output . EnvironmentLinks , context ) : undefined , EnvironmentName : __expectString ( output . EnvironmentName ) , OptionSettings : output . OptionSettings !== undefined && output . OptionSettings !== null ? deserializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSettings ( output . OptionSettings , context ) : undefined , PlatformArn : __expectString ( output . PlatformArn ) , SolutionStackName : __expectString ( output . SolutionStackName ) , Status : __expectString ( output . Status ) , Tier : output . Tier !== undefined && output . Tier !== null ? deserializeAws_restJson1AwsElasticBeanstalkEnvironmentTier ( output . Tier , context ) : undefined , VersionLabel : __expectString ( output . VersionLabel ) , } as any ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLink = ( output , context ) : AwsElasticBeanstalkEnvironmentEnvironmentLink => { return { EnvironmentName : __expectString ( output . EnvironmentName ) , LinkName : __expectString ( output . LinkName ) , } as any ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLinks = ( output , context ) : AwsElasticBeanstalkEnvironmentEnvironmentLink [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElasticBeanstalkEnvironmentEnvironmentLink ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSetting = ( output , context ) : AwsElasticBeanstalkEnvironmentOptionSetting => { return { Namespace : __expectString ( output . Namespace ) , OptionName : __expectString ( output . OptionName ) , ResourceName : __expectString ( output . ResourceName ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSettings = ( output , context ) : AwsElasticBeanstalkEnvironmentOptionSetting [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElasticBeanstalkEnvironmentOptionSetting ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElasticBeanstalkEnvironmentTier = ( output , context ) : AwsElasticBeanstalkEnvironmentTier => { return { Name : __expectString ( output . Name ) , Type : __expectString ( output . Type ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainDetails = ( output , context ) : AwsElasticsearchDomainDetails => { return { AccessPolicies : __expectString ( output . AccessPolicies ) , DomainEndpointOptions : output . DomainEndpointOptions !== undefined && output . DomainEndpointOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainDomainEndpointOptions ( output . DomainEndpointOptions , context ) : undefined , DomainId : __expectString ( output . DomainId ) , DomainName : __expectString ( output . DomainName ) , ElasticsearchClusterConfig : output . ElasticsearchClusterConfig !== undefined && output . ElasticsearchClusterConfig !== null ? deserializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigDetails ( output . ElasticsearchClusterConfig , context ) : undefined , ElasticsearchVersion : __expectString ( output . ElasticsearchVersion ) , EncryptionAtRestOptions : output . EncryptionAtRestOptions !== undefined && output . EncryptionAtRestOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainEncryptionAtRestOptions ( output . EncryptionAtRestOptions , context ) : undefined , Endpoint : __expectString ( output . Endpoint ) , Endpoints : output . Endpoints !== undefined && output . Endpoints !== null ? deserializeAws_restJson1FieldMap ( output . Endpoints , context ) : undefined , LogPublishingOptions : output . LogPublishingOptions !== undefined && output . LogPublishingOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptions ( output . LogPublishingOptions , context ) : undefined , NodeToNodeEncryptionOptions : output . NodeToNodeEncryptionOptions !== undefined && output . NodeToNodeEncryptionOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainNodeToNodeEncryptionOptions ( output . NodeToNodeEncryptionOptions , context ) : undefined , ServiceSoftwareOptions : output . ServiceSoftwareOptions !== undefined && output . ServiceSoftwareOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainServiceSoftwareOptions ( output . ServiceSoftwareOptions , context ) : undefined , VPCOptions : output . VPCOptions !== undefined && output . VPCOptions !== null ? deserializeAws_restJson1AwsElasticsearchDomainVPCOptions ( output . VPCOptions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainDomainEndpointOptions = ( output , context ) : AwsElasticsearchDomainDomainEndpointOptions => { return { EnforceHTTPS : __expectBoolean ( output . EnforceHTTPS ) , TLSSecurityPolicy : __expectString ( output . TLSSecurityPolicy ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigDetails = ( output , context ) : AwsElasticsearchDomainElasticsearchClusterConfigDetails => { return { DedicatedMasterCount : __expectInt32 ( output . DedicatedMasterCount ) , DedicatedMasterEnabled : __expectBoolean ( output . DedicatedMasterEnabled ) , DedicatedMasterType : __expectString ( output . DedicatedMasterType ) , InstanceCount : __expectInt32 ( output . InstanceCount ) , InstanceType : __expectString ( output . InstanceType ) , ZoneAwarenessConfig : output . ZoneAwarenessConfig !== undefined && output . ZoneAwarenessConfig !== null ? deserializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails ( output . ZoneAwarenessConfig , context ) : undefined , ZoneAwarenessEnabled : __expectBoolean ( output . ZoneAwarenessEnabled ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails = ( output , context ) : AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails => { return { AvailabilityZoneCount : __expectInt32 ( output . AvailabilityZoneCount ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainEncryptionAtRestOptions = ( output , context ) : AwsElasticsearchDomainEncryptionAtRestOptions => { return { Enabled : __expectBoolean ( output . Enabled ) , KmsKeyId : __expectString ( output . KmsKeyId ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptions = ( output , context ) : AwsElasticsearchDomainLogPublishingOptions => { return { AuditLogs : output . AuditLogs !== undefined && output . AuditLogs !== null ? deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( output . AuditLogs , context ) : undefined , IndexSlowLogs : output . IndexSlowLogs !== undefined && output . IndexSlowLogs !== null ? deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( output . IndexSlowLogs , context ) : undefined , SearchSlowLogs : output . SearchSlowLogs !== undefined && output . SearchSlowLogs !== null ? deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig ( output . SearchSlowLogs , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainLogPublishingOptionsLogConfig = ( output , context ) : AwsElasticsearchDomainLogPublishingOptionsLogConfig => { return { CloudWatchLogsLogGroupArn : __expectString ( output . CloudWatchLogsLogGroupArn ) , Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainNodeToNodeEncryptionOptions = ( output , context ) : AwsElasticsearchDomainNodeToNodeEncryptionOptions => { return { Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainServiceSoftwareOptions = ( output , context ) : AwsElasticsearchDomainServiceSoftwareOptions => { return { AutomatedUpdateDate : __expectString ( output . AutomatedUpdateDate ) , Cancellable : __expectBoolean ( output . Cancellable ) , CurrentVersion : __expectString ( output . CurrentVersion ) , Description : __expectString ( output . Description ) , NewVersion : __expectString ( output . NewVersion ) , UpdateAvailable : __expectBoolean ( output . UpdateAvailable ) , UpdateStatus : __expectString ( output . UpdateStatus ) , } as any ; } ; const deserializeAws_restJson1AwsElasticsearchDomainVPCOptions = ( output , context ) : AwsElasticsearchDomainVPCOptions => { return { AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1NonEmptyStringList ( output . AvailabilityZones , context ) : undefined , SecurityGroupIds : output . SecurityGroupIds !== undefined && output . SecurityGroupIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroupIds , context ) : undefined , SubnetIds : output . SubnetIds !== undefined && output . SubnetIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SubnetIds , context ) : undefined , VPCId : __expectString ( output . VPCId ) , } as any ; } ; const deserializeAws_restJson1AwsElbAppCookieStickinessPolicies = ( output , context ) : AwsElbAppCookieStickinessPolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbAppCookieStickinessPolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbAppCookieStickinessPolicy = ( output , context ) : AwsElbAppCookieStickinessPolicy => { return { CookieName : __expectString ( output . CookieName ) , PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsElbLbCookieStickinessPolicies = ( output , context ) : AwsElbLbCookieStickinessPolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbLbCookieStickinessPolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbLbCookieStickinessPolicy = ( output , context ) : AwsElbLbCookieStickinessPolicy => { return { CookieExpirationPeriod : __expectLong ( output . CookieExpirationPeriod ) , PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerAccessLog = ( output , context ) : AwsElbLoadBalancerAccessLog => { return { EmitInterval : __expectInt32 ( output . EmitInterval ) , Enabled : __expectBoolean ( output . Enabled ) , S3BucketName : __expectString ( output . S3BucketName ) , S3BucketPrefix : __expectString ( output . S3BucketPrefix ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerAttributes = ( output , context ) : AwsElbLoadBalancerAttributes => { return { AccessLog : output . AccessLog !== undefined && output . AccessLog !== null ? deserializeAws_restJson1AwsElbLoadBalancerAccessLog ( output . AccessLog , context ) : undefined , ConnectionDraining : output . ConnectionDraining !== undefined && output . ConnectionDraining !== null ? deserializeAws_restJson1AwsElbLoadBalancerConnectionDraining ( output . ConnectionDraining , context ) : undefined , ConnectionSettings : output . ConnectionSettings !== undefined && output . ConnectionSettings !== null ? deserializeAws_restJson1AwsElbLoadBalancerConnectionSettings ( output . ConnectionSettings , context ) : undefined , CrossZoneLoadBalancing : output . CrossZoneLoadBalancing !== undefined && output . CrossZoneLoadBalancing !== null ? deserializeAws_restJson1AwsElbLoadBalancerCrossZoneLoadBalancing ( output . CrossZoneLoadBalancing , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerBackendServerDescription = ( output , context ) : AwsElbLoadBalancerBackendServerDescription => { return { InstancePort : __expectInt32 ( output . InstancePort ) , PolicyNames : output . PolicyNames !== undefined && output . PolicyNames !== null ? deserializeAws_restJson1StringList ( output . PolicyNames , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerBackendServerDescriptions = ( output , context ) : AwsElbLoadBalancerBackendServerDescription [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbLoadBalancerBackendServerDescription ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbLoadBalancerConnectionDraining = ( output , context ) : AwsElbLoadBalancerConnectionDraining => { return { Enabled : __expectBoolean ( output . Enabled ) , Timeout : __expectInt32 ( output . Timeout ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerConnectionSettings = ( output , context ) : AwsElbLoadBalancerConnectionSettings => { return { IdleTimeout : __expectInt32 ( output . IdleTimeout ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerCrossZoneLoadBalancing = ( output , context ) : AwsElbLoadBalancerCrossZoneLoadBalancing => { return { Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerDetails = ( output , context ) : AwsElbLoadBalancerDetails => { return { AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1StringList ( output . AvailabilityZones , context ) : undefined , BackendServerDescriptions : output . BackendServerDescriptions !== undefined && output . BackendServerDescriptions !== null ? deserializeAws_restJson1AwsElbLoadBalancerBackendServerDescriptions ( output . BackendServerDescriptions , context ) : undefined , CanonicalHostedZoneName : __expectString ( output . CanonicalHostedZoneName ) , CanonicalHostedZoneNameID : __expectString ( output . CanonicalHostedZoneNameID ) , CreatedTime : __expectString ( output . CreatedTime ) , DnsName : __expectString ( output . DnsName ) , HealthCheck : output . HealthCheck !== undefined && output . HealthCheck !== null ? deserializeAws_restJson1AwsElbLoadBalancerHealthCheck ( output . HealthCheck , context ) : undefined , Instances : output . Instances !== undefined && output . Instances !== null ? deserializeAws_restJson1AwsElbLoadBalancerInstances ( output . Instances , context ) : undefined , ListenerDescriptions : output . ListenerDescriptions !== undefined && output . ListenerDescriptions !== null ? deserializeAws_restJson1AwsElbLoadBalancerListenerDescriptions ( output . ListenerDescriptions , context ) : undefined , LoadBalancerAttributes : output . LoadBalancerAttributes !== undefined && output . LoadBalancerAttributes !== null ? deserializeAws_restJson1AwsElbLoadBalancerAttributes ( output . LoadBalancerAttributes , context ) : undefined , LoadBalancerName : __expectString ( output . LoadBalancerName ) , Policies : output . Policies !== undefined && output . Policies !== null ? deserializeAws_restJson1AwsElbLoadBalancerPolicies ( output . Policies , context ) : undefined , Scheme : __expectString ( output . Scheme ) , SecurityGroups : output . SecurityGroups !== undefined && output . SecurityGroups !== null ? deserializeAws_restJson1StringList ( output . SecurityGroups , context ) : undefined , SourceSecurityGroup : output . SourceSecurityGroup !== undefined && output . SourceSecurityGroup !== null ? deserializeAws_restJson1AwsElbLoadBalancerSourceSecurityGroup ( output . SourceSecurityGroup , context ) : undefined , Subnets : output . Subnets !== undefined && output . Subnets !== null ? deserializeAws_restJson1StringList ( output . Subnets , context ) : undefined , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerHealthCheck = ( output , context ) : AwsElbLoadBalancerHealthCheck => { return { HealthyThreshold : __expectInt32 ( output . HealthyThreshold ) , Interval : __expectInt32 ( output . Interval ) , Target : __expectString ( output . Target ) , Timeout : __expectInt32 ( output . Timeout ) , UnhealthyThreshold : __expectInt32 ( output . UnhealthyThreshold ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerInstance = ( output , context ) : AwsElbLoadBalancerInstance => { return { InstanceId : __expectString ( output . InstanceId ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerInstances = ( output , context ) : AwsElbLoadBalancerInstance [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbLoadBalancerInstance ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbLoadBalancerListener = ( output , context ) : AwsElbLoadBalancerListener => { return { InstancePort : __expectInt32 ( output . InstancePort ) , InstanceProtocol : __expectString ( output . InstanceProtocol ) , LoadBalancerPort : __expectInt32 ( output . LoadBalancerPort ) , Protocol : __expectString ( output . Protocol ) , SslCertificateId : __expectString ( output . SslCertificateId ) , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerListenerDescription = ( output , context ) : AwsElbLoadBalancerListenerDescription => { return { Listener : output . Listener !== undefined && output . Listener !== null ? deserializeAws_restJson1AwsElbLoadBalancerListener ( output . Listener , context ) : undefined , PolicyNames : output . PolicyNames !== undefined && output . PolicyNames !== null ? deserializeAws_restJson1StringList ( output . PolicyNames , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerListenerDescriptions = ( output , context ) : AwsElbLoadBalancerListenerDescription [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbLoadBalancerListenerDescription ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbLoadBalancerPolicies = ( output , context ) : AwsElbLoadBalancerPolicies => { return { AppCookieStickinessPolicies : output . AppCookieStickinessPolicies !== undefined && output . AppCookieStickinessPolicies !== null ? deserializeAws_restJson1AwsElbAppCookieStickinessPolicies ( output . AppCookieStickinessPolicies , context ) : undefined , LbCookieStickinessPolicies : output . LbCookieStickinessPolicies !== undefined && output . LbCookieStickinessPolicies !== null ? deserializeAws_restJson1AwsElbLbCookieStickinessPolicies ( output . LbCookieStickinessPolicies , context ) : undefined , OtherPolicies : output . OtherPolicies !== undefined && output . OtherPolicies !== null ? deserializeAws_restJson1StringList ( output . OtherPolicies , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsElbLoadBalancerSourceSecurityGroup = ( output , context ) : AwsElbLoadBalancerSourceSecurityGroup => { return { GroupName : __expectString ( output . GroupName ) , OwnerAlias : __expectString ( output . OwnerAlias ) , } as any ; } ; const deserializeAws_restJson1AwsElbv2LoadBalancerAttribute = ( output , context ) : AwsElbv2LoadBalancerAttribute => { return { Key : __expectString ( output . Key ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsElbv2LoadBalancerAttributes = ( output , context ) : AwsElbv2LoadBalancerAttribute [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsElbv2LoadBalancerAttribute ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsElbv2LoadBalancerDetails = ( output , context ) : AwsElbv2LoadBalancerDetails => { return { AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1AvailabilityZones ( output . AvailabilityZones , context ) : undefined , CanonicalHostedZoneId : __expectString ( output . CanonicalHostedZoneId ) , CreatedTime : __expectString ( output . CreatedTime ) , DNSName : __expectString ( output . DNSName ) , IpAddressType : __expectString ( output . IpAddressType ) , LoadBalancerAttributes : output . LoadBalancerAttributes !== undefined && output . LoadBalancerAttributes !== null ? deserializeAws_restJson1AwsElbv2LoadBalancerAttributes ( output . LoadBalancerAttributes , context ) : undefined , Scheme : __expectString ( output . Scheme ) , SecurityGroups : output . SecurityGroups !== undefined && output . SecurityGroups !== null ? deserializeAws_restJson1SecurityGroups ( output . SecurityGroups , context ) : undefined , State : output . State !== undefined && output . State !== null ? deserializeAws_restJson1LoadBalancerState ( output . State , context ) : undefined , Type : __expectString ( output . Type ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsIamAccessKeyDetails = ( output , context ) : AwsIamAccessKeyDetails => { return { AccessKeyId : __expectString ( output . AccessKeyId ) , AccountId : __expectString ( output . AccountId ) , CreatedAt : __expectString ( output . CreatedAt ) , PrincipalId : __expectString ( output . PrincipalId ) , PrincipalName : __expectString ( output . PrincipalName ) , PrincipalType : __expectString ( output . PrincipalType ) , SessionContext : output . SessionContext !== undefined && output . SessionContext !== null ? deserializeAws_restJson1AwsIamAccessKeySessionContext ( output . SessionContext , context ) : undefined , Status : __expectString ( output . Status ) , UserName : __expectString ( output . UserName ) , } as any ; } ; const deserializeAws_restJson1AwsIamAccessKeySessionContext = ( output , context ) : AwsIamAccessKeySessionContext => { return { Attributes : output . Attributes !== undefined && output . Attributes !== null ? deserializeAws_restJson1AwsIamAccessKeySessionContextAttributes ( output . Attributes , context ) : undefined , SessionIssuer : output . SessionIssuer !== undefined && output . SessionIssuer !== null ? deserializeAws_restJson1AwsIamAccessKeySessionContextSessionIssuer ( output . SessionIssuer , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsIamAccessKeySessionContextAttributes = ( output , context ) : AwsIamAccessKeySessionContextAttributes => { return { CreationDate : __expectString ( output . CreationDate ) , MfaAuthenticated : __expectBoolean ( output . MfaAuthenticated ) , } as any ; } ; const deserializeAws_restJson1AwsIamAccessKeySessionContextSessionIssuer = ( output , context ) : AwsIamAccessKeySessionContextSessionIssuer => { return { AccountId : __expectString ( output . AccountId ) , Arn : __expectString ( output . Arn ) , PrincipalId : __expectString ( output . PrincipalId ) , Type : __expectString ( output . Type ) , UserName : __expectString ( output . UserName ) , } as any ; } ; const deserializeAws_restJson1AwsIamAttachedManagedPolicy = ( output , context ) : AwsIamAttachedManagedPolicy => { return { PolicyArn : __expectString ( output . PolicyArn ) , PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsIamAttachedManagedPolicyList = ( output , context ) : AwsIamAttachedManagedPolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamAttachedManagedPolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamGroupDetails = ( output , context ) : AwsIamGroupDetails => { return { AttachedManagedPolicies : output . AttachedManagedPolicies !== undefined && output . AttachedManagedPolicies !== null ? deserializeAws_restJson1AwsIamAttachedManagedPolicyList ( output . AttachedManagedPolicies , context ) : undefined , CreateDate : __expectString ( output . CreateDate ) , GroupId : __expectString ( output . GroupId ) , GroupName : __expectString ( output . GroupName ) , GroupPolicyList : output . GroupPolicyList !== undefined && output . GroupPolicyList !== null ? deserializeAws_restJson1AwsIamGroupPolicyList ( output . GroupPolicyList , context ) : undefined , Path : __expectString ( output . Path ) , } as any ; } ; const deserializeAws_restJson1AwsIamGroupPolicy = ( output , context ) : AwsIamGroupPolicy => { return { PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsIamGroupPolicyList = ( output , context ) : AwsIamGroupPolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamGroupPolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamInstanceProfile = ( output , context ) : AwsIamInstanceProfile => { return { Arn : __expectString ( output . Arn ) , CreateDate : __expectString ( output . CreateDate ) , InstanceProfileId : __expectString ( output . InstanceProfileId ) , InstanceProfileName : __expectString ( output . InstanceProfileName ) , Path : __expectString ( output . Path ) , Roles : output . Roles !== undefined && output . Roles !== null ? deserializeAws_restJson1AwsIamInstanceProfileRoles ( output . Roles , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsIamInstanceProfileList = ( output , context ) : AwsIamInstanceProfile [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamInstanceProfile ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamInstanceProfileRole = ( output , context ) : AwsIamInstanceProfileRole => { return { Arn : __expectString ( output . Arn ) , AssumeRolePolicyDocument : __expectString ( output . AssumeRolePolicyDocument ) , CreateDate : __expectString ( output . CreateDate ) , Path : __expectString ( output . Path ) , RoleId : __expectString ( output . RoleId ) , RoleName : __expectString ( output . RoleName ) , } as any ; } ; const deserializeAws_restJson1AwsIamInstanceProfileRoles = ( output , context ) : AwsIamInstanceProfileRole [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamInstanceProfileRole ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamPermissionsBoundary = ( output , context ) : AwsIamPermissionsBoundary => { return { PermissionsBoundaryArn : __expectString ( output . PermissionsBoundaryArn ) , PermissionsBoundaryType : __expectString ( output . PermissionsBoundaryType ) , } as any ; } ; const deserializeAws_restJson1AwsIamPolicyDetails = ( output , context ) : AwsIamPolicyDetails => { return { AttachmentCount : __expectInt32 ( output . AttachmentCount ) , CreateDate : __expectString ( output . CreateDate ) , DefaultVersionId : __expectString ( output . DefaultVersionId ) , Description : __expectString ( output . Description ) , IsAttachable : __expectBoolean ( output . IsAttachable ) , Path : __expectString ( output . Path ) , PermissionsBoundaryUsageCount : __expectInt32 ( output . PermissionsBoundaryUsageCount ) , PolicyId : __expectString ( output . PolicyId ) , PolicyName : __expectString ( output . PolicyName ) , PolicyVersionList : output . PolicyVersionList !== undefined && output . PolicyVersionList !== null ? deserializeAws_restJson1AwsIamPolicyVersionList ( output . PolicyVersionList , context ) : undefined , UpdateDate : __expectString ( output . UpdateDate ) , } as any ; } ; const deserializeAws_restJson1AwsIamPolicyVersion = ( output , context ) : AwsIamPolicyVersion => { return { CreateDate : __expectString ( output . CreateDate ) , IsDefaultVersion : __expectBoolean ( output . IsDefaultVersion ) , VersionId : __expectString ( output . VersionId ) , } as any ; } ; const deserializeAws_restJson1AwsIamPolicyVersionList = ( output , context ) : AwsIamPolicyVersion [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamPolicyVersion ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamRoleDetails = ( output , context ) : AwsIamRoleDetails => { return { AssumeRolePolicyDocument : __expectString ( output . AssumeRolePolicyDocument ) , AttachedManagedPolicies : output . AttachedManagedPolicies !== undefined && output . AttachedManagedPolicies !== null ? deserializeAws_restJson1AwsIamAttachedManagedPolicyList ( output . AttachedManagedPolicies , context ) : undefined , CreateDate : __expectString ( output . CreateDate ) , InstanceProfileList : output . InstanceProfileList !== undefined && output . InstanceProfileList !== null ? deserializeAws_restJson1AwsIamInstanceProfileList ( output . InstanceProfileList , context ) : undefined , MaxSessionDuration : __expectInt32 ( output . MaxSessionDuration ) , Path : __expectString ( output . Path ) , PermissionsBoundary : output . PermissionsBoundary !== undefined && output . PermissionsBoundary !== null ? deserializeAws_restJson1AwsIamPermissionsBoundary ( output . PermissionsBoundary , context ) : undefined , RoleId : __expectString ( output . RoleId ) , RoleName : __expectString ( output . RoleName ) , RolePolicyList : output . RolePolicyList !== undefined && output . RolePolicyList !== null ? deserializeAws_restJson1AwsIamRolePolicyList ( output . RolePolicyList , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsIamRolePolicy = ( output , context ) : AwsIamRolePolicy => { return { PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsIamRolePolicyList = ( output , context ) : AwsIamRolePolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamRolePolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsIamUserDetails = ( output , context ) : AwsIamUserDetails => { return { AttachedManagedPolicies : output . AttachedManagedPolicies !== undefined && output . AttachedManagedPolicies !== null ? deserializeAws_restJson1AwsIamAttachedManagedPolicyList ( output . AttachedManagedPolicies , context ) : undefined , CreateDate : __expectString ( output . CreateDate ) , GroupList : output . GroupList !== undefined && output . GroupList !== null ? deserializeAws_restJson1StringList ( output . GroupList , context ) : undefined , Path : __expectString ( output . Path ) , PermissionsBoundary : output . PermissionsBoundary !== undefined && output . PermissionsBoundary !== null ? deserializeAws_restJson1AwsIamPermissionsBoundary ( output . PermissionsBoundary , context ) : undefined , UserId : __expectString ( output . UserId ) , UserName : __expectString ( output . UserName ) , UserPolicyList : output . UserPolicyList !== undefined && output . UserPolicyList !== null ? deserializeAws_restJson1AwsIamUserPolicyList ( output . UserPolicyList , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsIamUserPolicy = ( output , context ) : AwsIamUserPolicy => { return { PolicyName : __expectString ( output . PolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsIamUserPolicyList = ( output , context ) : AwsIamUserPolicy [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsIamUserPolicy ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsKmsKeyDetails = ( output , context ) : AwsKmsKeyDetails => { return { AWSAccountId : __expectString ( output . AWSAccountId ) , CreationDate : __limitedParseDouble ( output . CreationDate ) , Description : __expectString ( output . Description ) , KeyId : __expectString ( output . KeyId ) , KeyManager : __expectString ( output . KeyManager ) , KeyRotationStatus : __expectBoolean ( output . KeyRotationStatus ) , KeyState : __expectString ( output . KeyState ) , Origin : __expectString ( output . Origin ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionCode = ( output , context ) : AwsLambdaFunctionCode => { return { S3Bucket : __expectString ( output . S3Bucket ) , S3Key : __expectString ( output . S3Key ) , S3ObjectVersion : __expectString ( output . S3ObjectVersion ) , ZipFile : __expectString ( output . ZipFile ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionDeadLetterConfig = ( output , context ) : AwsLambdaFunctionDeadLetterConfig => { return { TargetArn : __expectString ( output . TargetArn ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionDetails = ( output , context ) : AwsLambdaFunctionDetails => { return { Code : output . Code !== undefined && output . Code !== null ? deserializeAws_restJson1AwsLambdaFunctionCode ( output . Code , context ) : undefined , CodeSha256 : __expectString ( output . CodeSha256 ) , DeadLetterConfig : output . DeadLetterConfig !== undefined && output . DeadLetterConfig !== null ? deserializeAws_restJson1AwsLambdaFunctionDeadLetterConfig ( output . DeadLetterConfig , context ) : undefined , Environment : output . Environment !== undefined && output . Environment !== null ? deserializeAws_restJson1AwsLambdaFunctionEnvironment ( output . Environment , context ) : undefined , FunctionName : __expectString ( output . FunctionName ) , Handler : __expectString ( output . Handler ) , KmsKeyArn : __expectString ( output . KmsKeyArn ) , LastModified : __expectString ( output . LastModified ) , Layers : output . Layers !== undefined && output . Layers !== null ? deserializeAws_restJson1AwsLambdaFunctionLayerList ( output . Layers , context ) : undefined , MasterArn : __expectString ( output . MasterArn ) , MemorySize : __expectInt32 ( output . MemorySize ) , RevisionId : __expectString ( output . RevisionId ) , Role : __expectString ( output . Role ) , Runtime : __expectString ( output . Runtime ) , Timeout : __expectInt32 ( output . Timeout ) , TracingConfig : output . TracingConfig !== undefined && output . TracingConfig !== null ? deserializeAws_restJson1AwsLambdaFunctionTracingConfig ( output . TracingConfig , context ) : undefined , Version : __expectString ( output . Version ) , VpcConfig : output . VpcConfig !== undefined && output . VpcConfig !== null ? deserializeAws_restJson1AwsLambdaFunctionVpcConfig ( output . VpcConfig , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionEnvironment = ( output , context ) : AwsLambdaFunctionEnvironment => { return { Error : output . Error !== undefined && output . Error !== null ? deserializeAws_restJson1AwsLambdaFunctionEnvironmentError ( output . Error , context ) : undefined , Variables : output . Variables !== undefined && output . Variables !== null ? deserializeAws_restJson1FieldMap ( output . Variables , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionEnvironmentError = ( output , context ) : AwsLambdaFunctionEnvironmentError => { return { ErrorCode : __expectString ( output . ErrorCode ) , Message : __expectString ( output . Message ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionLayer = ( output , context ) : AwsLambdaFunctionLayer => { return { Arn : __expectString ( output . Arn ) , CodeSize : __expectInt32 ( output . CodeSize ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionLayerList = ( output , context ) : AwsLambdaFunctionLayer [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsLambdaFunctionLayer ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsLambdaFunctionTracingConfig = ( output , context ) : AwsLambdaFunctionTracingConfig => { return { Mode : __expectString ( output . Mode ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaFunctionVpcConfig = ( output , context ) : AwsLambdaFunctionVpcConfig => { return { SecurityGroupIds : output . SecurityGroupIds !== undefined && output . SecurityGroupIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroupIds , context ) : undefined , SubnetIds : output . SubnetIds !== undefined && output . SubnetIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SubnetIds , context ) : undefined , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsLambdaLayerVersionDetails = ( output , context ) : AwsLambdaLayerVersionDetails => { return { CompatibleRuntimes : output . CompatibleRuntimes !== undefined && output . CompatibleRuntimes !== null ? deserializeAws_restJson1NonEmptyStringList ( output . CompatibleRuntimes , context ) : undefined , CreatedDate : __expectString ( output . CreatedDate ) , Version : __expectLong ( output . Version ) , } as any ; } ; const deserializeAws_restJson1AwsNetworkFirewallFirewallDetails = ( output , context ) : AwsNetworkFirewallFirewallDetails => { return { DeleteProtection : __expectBoolean ( output . DeleteProtection ) , Description : __expectString ( output . Description ) , FirewallArn : __expectString ( output . FirewallArn ) , FirewallId : __expectString ( output . FirewallId ) , FirewallName : __expectString ( output . FirewallName ) , FirewallPolicyArn : __expectString ( output . FirewallPolicyArn ) , FirewallPolicyChangeProtection : __expectBoolean ( output . FirewallPolicyChangeProtection ) , SubnetChangeProtection : __expectBoolean ( output . SubnetChangeProtection ) , SubnetMappings : output . SubnetMappings !== undefined && output . SubnetMappings !== null ? deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList ( output . SubnetMappings , context ) : undefined , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails = ( output , context ) : AwsNetworkFirewallFirewallPolicyDetails => { return { Description : __expectString ( output . Description ) , FirewallPolicy : output . FirewallPolicy !== undefined && output . FirewallPolicy !== null ? deserializeAws_restJson1FirewallPolicyDetails ( output . FirewallPolicy , context ) : undefined , FirewallPolicyArn : __expectString ( output . FirewallPolicyArn ) , FirewallPolicyId : __expectString ( output . FirewallPolicyId ) , FirewallPolicyName : __expectString ( output . FirewallPolicyName ) , } as any ; } ; const deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails = ( output , context ) : AwsNetworkFirewallFirewallSubnetMappingsDetails => { return { SubnetId : __expectString ( output . SubnetId ) , } as any ; } ; const deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList = ( output , context ) : AwsNetworkFirewallFirewallSubnetMappingsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsNetworkFirewallRuleGroupDetails = ( output , context ) : AwsNetworkFirewallRuleGroupDetails => { return { Capacity : __expectInt32 ( output . Capacity ) , Description : __expectString ( output . Description ) , RuleGroup : output . RuleGroup !== undefined && output . RuleGroup !== null ? deserializeAws_restJson1RuleGroupDetails ( output . RuleGroup , context ) : undefined , RuleGroupArn : __expectString ( output . RuleGroupArn ) , RuleGroupId : __expectString ( output . RuleGroupId ) , RuleGroupName : __expectString ( output . RuleGroupName ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigDetails = ( output , context ) : AwsOpenSearchServiceDomainClusterConfigDetails => { return { DedicatedMasterCount : __expectInt32 ( output . DedicatedMasterCount ) , DedicatedMasterEnabled : __expectBoolean ( output . DedicatedMasterEnabled ) , DedicatedMasterType : __expectString ( output . DedicatedMasterType ) , InstanceCount : __expectInt32 ( output . InstanceCount ) , InstanceType : __expectString ( output . InstanceType ) , WarmCount : __expectInt32 ( output . WarmCount ) , WarmEnabled : __expectBoolean ( output . WarmEnabled ) , WarmType : __expectString ( output . WarmType ) , ZoneAwarenessConfig : output . ZoneAwarenessConfig !== undefined && output . ZoneAwarenessConfig !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails ( output . ZoneAwarenessConfig , context ) : undefined , ZoneAwarenessEnabled : __expectBoolean ( output . ZoneAwarenessEnabled ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails = ( output , context ) : AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails => { return { AvailabilityZoneCount : __expectInt32 ( output . AvailabilityZoneCount ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainDetails = ( output , context ) : AwsOpenSearchServiceDomainDetails => { return { AccessPolicies : __expectString ( output . AccessPolicies ) , Arn : __expectString ( output . Arn ) , ClusterConfig : output . ClusterConfig !== undefined && output . ClusterConfig !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigDetails ( output . ClusterConfig , context ) : undefined , DomainEndpoint : __expectString ( output . DomainEndpoint ) , DomainEndpointOptions : output . DomainEndpointOptions !== undefined && output . DomainEndpointOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainDomainEndpointOptionsDetails ( output . DomainEndpointOptions , context ) : undefined , DomainEndpoints : output . DomainEndpoints !== undefined && output . DomainEndpoints !== null ? deserializeAws_restJson1FieldMap ( output . DomainEndpoints , context ) : undefined , DomainName : __expectString ( output . DomainName ) , EncryptionAtRestOptions : output . EncryptionAtRestOptions !== undefined && output . EncryptionAtRestOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails ( output . EncryptionAtRestOptions , context ) : undefined , EngineVersion : __expectString ( output . EngineVersion ) , Id : __expectString ( output . Id ) , LogPublishingOptions : output . LogPublishingOptions !== undefined && output . LogPublishingOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOptionsDetails ( output . LogPublishingOptions , context ) : undefined , NodeToNodeEncryptionOptions : output . NodeToNodeEncryptionOptions !== undefined && output . NodeToNodeEncryptionOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails ( output . NodeToNodeEncryptionOptions , context ) : undefined , ServiceSoftwareOptions : output . ServiceSoftwareOptions !== undefined && output . ServiceSoftwareOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails ( output . ServiceSoftwareOptions , context ) : undefined , VpcOptions : output . VpcOptions !== undefined && output . VpcOptions !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainVpcOptionsDetails ( output . VpcOptions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainDomainEndpointOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainDomainEndpointOptionsDetails => { return { CustomEndpoint : __expectString ( output . CustomEndpoint ) , CustomEndpointCertificateArn : __expectString ( output . CustomEndpointCertificateArn ) , CustomEndpointEnabled : __expectBoolean ( output . CustomEndpointEnabled ) , EnforceHTTPS : __expectBoolean ( output . EnforceHTTPS ) , TLSSecurityPolicy : __expectString ( output . TLSSecurityPolicy ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails => { return { Enabled : __expectBoolean ( output . Enabled ) , KmsKeyId : __expectString ( output . KmsKeyId ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption = ( output , context ) : AwsOpenSearchServiceDomainLogPublishingOption => { return { CloudWatchLogsLogGroupArn : __expectString ( output . CloudWatchLogsLogGroupArn ) , Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainLogPublishingOptionsDetails => { return { AuditLogs : output . AuditLogs !== undefined && output . AuditLogs !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( output . AuditLogs , context ) : undefined , IndexSlowLogs : output . IndexSlowLogs !== undefined && output . IndexSlowLogs !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( output . IndexSlowLogs , context ) : undefined , SearchSlowLogs : output . SearchSlowLogs !== undefined && output . SearchSlowLogs !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainLogPublishingOption ( output . SearchSlowLogs , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails => { return { Enabled : __expectBoolean ( output . Enabled ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails => { return { AutomatedUpdateDate : __expectString ( output . AutomatedUpdateDate ) , Cancellable : __expectBoolean ( output . Cancellable ) , CurrentVersion : __expectString ( output . CurrentVersion ) , Description : __expectString ( output . Description ) , NewVersion : __expectString ( output . NewVersion ) , OptionalDeployment : __expectBoolean ( output . OptionalDeployment ) , UpdateAvailable : __expectBoolean ( output . UpdateAvailable ) , UpdateStatus : __expectString ( output . UpdateStatus ) , } as any ; } ; const deserializeAws_restJson1AwsOpenSearchServiceDomainVpcOptionsDetails = ( output , context ) : AwsOpenSearchServiceDomainVpcOptionsDetails => { return { SecurityGroupIds : output . SecurityGroupIds !== undefined && output . SecurityGroupIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SecurityGroupIds , context ) : undefined , SubnetIds : output . SubnetIds !== undefined && output . SubnetIds !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SubnetIds , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsRdsDbClusterAssociatedRole = ( output , context ) : AwsRdsDbClusterAssociatedRole => { return { RoleArn : __expectString ( output . RoleArn ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbClusterAssociatedRoles = ( output , context ) : AwsRdsDbClusterAssociatedRole [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbClusterAssociatedRole ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbClusterDetails = ( output , context ) : AwsRdsDbClusterDetails => { return { ActivityStreamStatus : __expectString ( output . ActivityStreamStatus ) , AllocatedStorage : __expectInt32 ( output . AllocatedStorage ) , AssociatedRoles : output . AssociatedRoles !== undefined && output . AssociatedRoles !== null ? deserializeAws_restJson1AwsRdsDbClusterAssociatedRoles ( output . AssociatedRoles , context ) : undefined , AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1StringList ( output . AvailabilityZones , context ) : undefined , BackupRetentionPeriod : __expectInt32 ( output . BackupRetentionPeriod ) , ClusterCreateTime : __expectString ( output . ClusterCreateTime ) , CopyTagsToSnapshot : __expectBoolean ( output . CopyTagsToSnapshot ) , CrossAccountClone : __expectBoolean ( output . CrossAccountClone ) , CustomEndpoints : output . CustomEndpoints !== undefined && output . CustomEndpoints !== null ? deserializeAws_restJson1StringList ( output . CustomEndpoints , context ) : undefined , DatabaseName : __expectString ( output . DatabaseName ) , DbClusterIdentifier : __expectString ( output . DbClusterIdentifier ) , DbClusterMembers : output . DbClusterMembers !== undefined && output . DbClusterMembers !== null ? deserializeAws_restJson1AwsRdsDbClusterMembers ( output . DbClusterMembers , context ) : undefined , DbClusterOptionGroupMemberships : output . DbClusterOptionGroupMemberships !== undefined && output . DbClusterOptionGroupMemberships !== null ? deserializeAws_restJson1AwsRdsDbClusterOptionGroupMemberships ( output . DbClusterOptionGroupMemberships , context ) : undefined , DbClusterParameterGroup : __expectString ( output . DbClusterParameterGroup ) , DbClusterResourceId : __expectString ( output . DbClusterResourceId ) , DbSubnetGroup : __expectString ( output . DbSubnetGroup ) , DeletionProtection : __expectBoolean ( output . DeletionProtection ) , DomainMemberships : output . DomainMemberships !== undefined && output . DomainMemberships !== null ? deserializeAws_restJson1AwsRdsDbDomainMemberships ( output . DomainMemberships , context ) : undefined , EnabledCloudWatchLogsExports : output . EnabledCloudWatchLogsExports !== undefined && output . EnabledCloudWatchLogsExports !== null ? deserializeAws_restJson1StringList ( output . EnabledCloudWatchLogsExports , context ) : undefined , Endpoint : __expectString ( output . Endpoint ) , Engine : __expectString ( output . Engine ) , EngineMode : __expectString ( output . EngineMode ) , EngineVersion : __expectString ( output . EngineVersion ) , HostedZoneId : __expectString ( output . HostedZoneId ) , HttpEndpointEnabled : __expectBoolean ( output . HttpEndpointEnabled ) , IamDatabaseAuthenticationEnabled : __expectBoolean ( output . IamDatabaseAuthenticationEnabled ) , KmsKeyId : __expectString ( output . KmsKeyId ) , MasterUsername : __expectString ( output . MasterUsername ) , MultiAz : __expectBoolean ( output . MultiAz ) , Port : __expectInt32 ( output . Port ) , PreferredBackupWindow : __expectString ( output . PreferredBackupWindow ) , PreferredMaintenanceWindow : __expectString ( output . PreferredMaintenanceWindow ) , ReadReplicaIdentifiers : output . ReadReplicaIdentifiers !== undefined && output . ReadReplicaIdentifiers !== null ? deserializeAws_restJson1StringList ( output . ReadReplicaIdentifiers , context ) : undefined , ReaderEndpoint : __expectString ( output . ReaderEndpoint ) , Status : __expectString ( output . Status ) , StorageEncrypted : __expectBoolean ( output . StorageEncrypted ) , VpcSecurityGroups : output . VpcSecurityGroups !== undefined && output . VpcSecurityGroups !== null ? deserializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups ( output . VpcSecurityGroups , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsRdsDbClusterMember = ( output , context ) : AwsRdsDbClusterMember => { return { DbClusterParameterGroupStatus : __expectString ( output . DbClusterParameterGroupStatus ) , DbInstanceIdentifier : __expectString ( output . DbInstanceIdentifier ) , IsClusterWriter : __expectBoolean ( output . IsClusterWriter ) , PromotionTier : __expectInt32 ( output . PromotionTier ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbClusterMembers = ( output , context ) : AwsRdsDbClusterMember [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbClusterMember ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbClusterOptionGroupMembership = ( output , context ) : AwsRdsDbClusterOptionGroupMembership => { return { DbClusterOptionGroupName : __expectString ( output . DbClusterOptionGroupName ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbClusterOptionGroupMemberships = ( output , context ) : AwsRdsDbClusterOptionGroupMembership [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbClusterOptionGroupMembership ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbClusterSnapshotDetails = ( output , context ) : AwsRdsDbClusterSnapshotDetails => { return { AllocatedStorage : __expectInt32 ( output . AllocatedStorage ) , AvailabilityZones : output . AvailabilityZones !== undefined && output . AvailabilityZones !== null ? deserializeAws_restJson1StringList ( output . AvailabilityZones , context ) : undefined , ClusterCreateTime : __expectString ( output . ClusterCreateTime ) , DbClusterIdentifier : __expectString ( output . DbClusterIdentifier ) , DbClusterSnapshotIdentifier : __expectString ( output . DbClusterSnapshotIdentifier ) , Engine : __expectString ( output . Engine ) , EngineVersion : __expectString ( output . EngineVersion ) , IamDatabaseAuthenticationEnabled : __expectBoolean ( output . IamDatabaseAuthenticationEnabled ) , KmsKeyId : __expectString ( output . KmsKeyId ) , LicenseModel : __expectString ( output . LicenseModel ) , MasterUsername : __expectString ( output . MasterUsername ) , PercentProgress : __expectInt32 ( output . PercentProgress ) , Port : __expectInt32 ( output . Port ) , SnapshotCreateTime : __expectString ( output . SnapshotCreateTime ) , SnapshotType : __expectString ( output . SnapshotType ) , Status : __expectString ( output . Status ) , StorageEncrypted : __expectBoolean ( output . StorageEncrypted ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbDomainMembership = ( output , context ) : AwsRdsDbDomainMembership => { return { Domain : __expectString ( output . Domain ) , Fqdn : __expectString ( output . Fqdn ) , IamRoleName : __expectString ( output . IamRoleName ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbDomainMemberships = ( output , context ) : AwsRdsDbDomainMembership [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbDomainMembership ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbInstanceAssociatedRole = ( output , context ) : AwsRdsDbInstanceAssociatedRole => { return { FeatureName : __expectString ( output . FeatureName ) , RoleArn : __expectString ( output . RoleArn ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbInstanceAssociatedRoles = ( output , context ) : AwsRdsDbInstanceAssociatedRole [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbInstanceAssociatedRole ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbInstanceDetails = ( output , context ) : AwsRdsDbInstanceDetails => { return { AllocatedStorage : __expectInt32 ( output . AllocatedStorage ) , AssociatedRoles : output . AssociatedRoles !== undefined && output . AssociatedRoles !== null ? deserializeAws_restJson1AwsRdsDbInstanceAssociatedRoles ( output . AssociatedRoles , context ) : undefined , AutoMinorVersionUpgrade : __expectBoolean ( output . AutoMinorVersionUpgrade ) , AvailabilityZone : __expectString ( output . AvailabilityZone ) , BackupRetentionPeriod : __expectInt32 ( output . BackupRetentionPeriod ) , CACertificateIdentifier : __expectString ( output . CACertificateIdentifier ) , CharacterSetName : __expectString ( output . CharacterSetName ) , CopyTagsToSnapshot : __expectBoolean ( output . CopyTagsToSnapshot ) , DBClusterIdentifier : __expectString ( output . DBClusterIdentifier ) , DBInstanceClass : __expectString ( output . DBInstanceClass ) , DBInstanceIdentifier : __expectString ( output . DBInstanceIdentifier ) , DBName : __expectString ( output . DBName ) , DbInstancePort : __expectInt32 ( output . DbInstancePort ) , DbInstanceStatus : __expectString ( output . DbInstanceStatus ) , DbParameterGroups : output . DbParameterGroups !== undefined && output . DbParameterGroups !== null ? deserializeAws_restJson1AwsRdsDbParameterGroups ( output . DbParameterGroups , context ) : undefined , DbSecurityGroups : output . DbSecurityGroups !== undefined && output . DbSecurityGroups !== null ? deserializeAws_restJson1StringList ( output . DbSecurityGroups , context ) : undefined , DbSubnetGroup : output . DbSubnetGroup !== undefined && output . DbSubnetGroup !== null ? deserializeAws_restJson1AwsRdsDbSubnetGroup ( output . DbSubnetGroup , context ) : undefined , DbiResourceId : __expectString ( output . DbiResourceId ) , DeletionProtection : __expectBoolean ( output . DeletionProtection ) , DomainMemberships : output . DomainMemberships !== undefined && output . DomainMemberships !== null ? deserializeAws_restJson1AwsRdsDbDomainMemberships ( output . DomainMemberships , context ) : undefined , EnabledCloudWatchLogsExports : output . EnabledCloudWatchLogsExports !== undefined && output . EnabledCloudWatchLogsExports !== null ? deserializeAws_restJson1StringList ( output . EnabledCloudWatchLogsExports , context ) : undefined , Endpoint : output . Endpoint !== undefined && output . Endpoint !== null ? deserializeAws_restJson1AwsRdsDbInstanceEndpoint ( output . Endpoint , context ) : undefined , Engine : __expectString ( output . Engine ) , EngineVersion : __expectString ( output . EngineVersion ) , EnhancedMonitoringResourceArn : __expectString ( output . EnhancedMonitoringResourceArn ) , IAMDatabaseAuthenticationEnabled : __expectBoolean ( output . IAMDatabaseAuthenticationEnabled ) , InstanceCreateTime : __expectString ( output . InstanceCreateTime ) , Iops : __expectInt32 ( output . Iops ) , KmsKeyId : __expectString ( output . KmsKeyId ) , LatestRestorableTime : __expectString ( output . LatestRestorableTime ) , LicenseModel : __expectString ( output . LicenseModel ) , ListenerEndpoint : output . ListenerEndpoint !== undefined && output . ListenerEndpoint !== null ? deserializeAws_restJson1AwsRdsDbInstanceEndpoint ( output . ListenerEndpoint , context ) : undefined , MasterUsername : __expectString ( output . MasterUsername ) , MaxAllocatedStorage : __expectInt32 ( output . MaxAllocatedStorage ) , MonitoringInterval : __expectInt32 ( output . MonitoringInterval ) , MonitoringRoleArn : __expectString ( output . MonitoringRoleArn ) , MultiAz : __expectBoolean ( output . MultiAz ) , OptionGroupMemberships : output . OptionGroupMemberships !== undefined && output . OptionGroupMemberships !== null ? deserializeAws_restJson1AwsRdsDbOptionGroupMemberships ( output . OptionGroupMemberships , context ) : undefined , PendingModifiedValues : output . PendingModifiedValues !== undefined && output . PendingModifiedValues !== null ? deserializeAws_restJson1AwsRdsDbPendingModifiedValues ( output . PendingModifiedValues , context ) : undefined , PerformanceInsightsEnabled : __expectBoolean ( output . PerformanceInsightsEnabled ) , PerformanceInsightsKmsKeyId : __expectString ( output . PerformanceInsightsKmsKeyId ) , PerformanceInsightsRetentionPeriod : __expectInt32 ( output . PerformanceInsightsRetentionPeriod ) , PreferredBackupWindow : __expectString ( output . PreferredBackupWindow ) , PreferredMaintenanceWindow : __expectString ( output . PreferredMaintenanceWindow ) , ProcessorFeatures : output . ProcessorFeatures !== undefined && output . ProcessorFeatures !== null ? deserializeAws_restJson1AwsRdsDbProcessorFeatures ( output . ProcessorFeatures , context ) : undefined , PromotionTier : __expectInt32 ( output . PromotionTier ) , PubliclyAccessible : __expectBoolean ( output . PubliclyAccessible ) , ReadReplicaDBClusterIdentifiers : output . ReadReplicaDBClusterIdentifiers !== undefined && output . ReadReplicaDBClusterIdentifiers !== null ? deserializeAws_restJson1StringList ( output . ReadReplicaDBClusterIdentifiers , context ) : undefined , ReadReplicaDBInstanceIdentifiers : output . ReadReplicaDBInstanceIdentifiers !== undefined && output . ReadReplicaDBInstanceIdentifiers !== null ? deserializeAws_restJson1StringList ( output . ReadReplicaDBInstanceIdentifiers , context ) : undefined , ReadReplicaSourceDBInstanceIdentifier : __expectString ( output . ReadReplicaSourceDBInstanceIdentifier ) , SecondaryAvailabilityZone : __expectString ( output . SecondaryAvailabilityZone ) , StatusInfos : output . StatusInfos !== undefined && output . StatusInfos !== null ? deserializeAws_restJson1AwsRdsDbStatusInfos ( output . StatusInfos , context ) : undefined , StorageEncrypted : __expectBoolean ( output . StorageEncrypted ) , StorageType : __expectString ( output . StorageType ) , TdeCredentialArn : __expectString ( output . TdeCredentialArn ) , Timezone : __expectString ( output . Timezone ) , VpcSecurityGroups : output . VpcSecurityGroups !== undefined && output . VpcSecurityGroups !== null ? deserializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups ( output . VpcSecurityGroups , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsRdsDbInstanceEndpoint = ( output , context ) : AwsRdsDbInstanceEndpoint => { return { Address : __expectString ( output . Address ) , HostedZoneId : __expectString ( output . HostedZoneId ) , Port : __expectInt32 ( output . Port ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroup = ( output , context ) : AwsRdsDbInstanceVpcSecurityGroup => { return { Status : __expectString ( output . Status ) , VpcSecurityGroupId : __expectString ( output . VpcSecurityGroupId ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroups = ( output , context ) : AwsRdsDbInstanceVpcSecurityGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbInstanceVpcSecurityGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbOptionGroupMembership = ( output , context ) : AwsRdsDbOptionGroupMembership => { return { OptionGroupName : __expectString ( output . OptionGroupName ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbOptionGroupMemberships = ( output , context ) : AwsRdsDbOptionGroupMembership [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbOptionGroupMembership ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbParameterGroup = ( output , context ) : AwsRdsDbParameterGroup => { return { DbParameterGroupName : __expectString ( output . DbParameterGroupName ) , ParameterApplyStatus : __expectString ( output . ParameterApplyStatus ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbParameterGroups = ( output , context ) : AwsRdsDbParameterGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbParameterGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbPendingModifiedValues = ( output , context ) : AwsRdsDbPendingModifiedValues => { return { AllocatedStorage : __expectInt32 ( output . AllocatedStorage ) , BackupRetentionPeriod : __expectInt32 ( output . BackupRetentionPeriod ) , CaCertificateIdentifier : __expectString ( output . CaCertificateIdentifier ) , DbInstanceClass : __expectString ( output . DbInstanceClass ) , DbInstanceIdentifier : __expectString ( output . DbInstanceIdentifier ) , DbSubnetGroupName : __expectString ( output . DbSubnetGroupName ) , EngineVersion : __expectString ( output . EngineVersion ) , Iops : __expectInt32 ( output . Iops ) , LicenseModel : __expectString ( output . LicenseModel ) , MasterUserPassword : __expectString ( output . MasterUserPassword ) , MultiAZ : __expectBoolean ( output . MultiAZ ) , PendingCloudWatchLogsExports : output . PendingCloudWatchLogsExports !== undefined && output . PendingCloudWatchLogsExports !== null ? deserializeAws_restJson1AwsRdsPendingCloudWatchLogsExports ( output . PendingCloudWatchLogsExports , context ) : undefined , Port : __expectInt32 ( output . Port ) , ProcessorFeatures : output . ProcessorFeatures !== undefined && output . ProcessorFeatures !== null ? deserializeAws_restJson1AwsRdsDbProcessorFeatures ( output . ProcessorFeatures , context ) : undefined , StorageType : __expectString ( output . StorageType ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbProcessorFeature = ( output , context ) : AwsRdsDbProcessorFeature => { return { Name : __expectString ( output . Name ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbProcessorFeatures = ( output , context ) : AwsRdsDbProcessorFeature [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbProcessorFeature ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbSnapshotDetails = ( output , context ) : AwsRdsDbSnapshotDetails => { return { AllocatedStorage : __expectInt32 ( output . AllocatedStorage ) , AvailabilityZone : __expectString ( output . AvailabilityZone ) , DbInstanceIdentifier : __expectString ( output . DbInstanceIdentifier ) , DbSnapshotIdentifier : __expectString ( output . DbSnapshotIdentifier ) , DbiResourceId : __expectString ( output . DbiResourceId ) , Encrypted : __expectBoolean ( output . Encrypted ) , Engine : __expectString ( output . Engine ) , EngineVersion : __expectString ( output . EngineVersion ) , IamDatabaseAuthenticationEnabled : __expectBoolean ( output . IamDatabaseAuthenticationEnabled ) , InstanceCreateTime : __expectString ( output . InstanceCreateTime ) , Iops : __expectInt32 ( output . Iops ) , KmsKeyId : __expectString ( output . KmsKeyId ) , LicenseModel : __expectString ( output . LicenseModel ) , MasterUsername : __expectString ( output . MasterUsername ) , OptionGroupName : __expectString ( output . OptionGroupName ) , PercentProgress : __expectInt32 ( output . PercentProgress ) , Port : __expectInt32 ( output . Port ) , ProcessorFeatures : output . ProcessorFeatures !== undefined && output . ProcessorFeatures !== null ? deserializeAws_restJson1AwsRdsDbProcessorFeatures ( output . ProcessorFeatures , context ) : undefined , SnapshotCreateTime : __expectString ( output . SnapshotCreateTime ) , SnapshotType : __expectString ( output . SnapshotType ) , SourceDbSnapshotIdentifier : __expectString ( output . SourceDbSnapshotIdentifier ) , SourceRegion : __expectString ( output . SourceRegion ) , Status : __expectString ( output . Status ) , StorageType : __expectString ( output . StorageType ) , TdeCredentialArn : __expectString ( output . TdeCredentialArn ) , Timezone : __expectString ( output . Timezone ) , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbStatusInfo = ( output , context ) : AwsRdsDbStatusInfo => { return { Message : __expectString ( output . Message ) , Normal : __expectBoolean ( output . Normal ) , Status : __expectString ( output . Status ) , StatusType : __expectString ( output . StatusType ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbStatusInfos = ( output , context ) : AwsRdsDbStatusInfo [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbStatusInfo ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsDbSubnetGroup = ( output , context ) : AwsRdsDbSubnetGroup => { return { DbSubnetGroupArn : __expectString ( output . DbSubnetGroupArn ) , DbSubnetGroupDescription : __expectString ( output . DbSubnetGroupDescription ) , DbSubnetGroupName : __expectString ( output . DbSubnetGroupName ) , SubnetGroupStatus : __expectString ( output . SubnetGroupStatus ) , Subnets : output . Subnets !== undefined && output . Subnets !== null ? deserializeAws_restJson1AwsRdsDbSubnetGroupSubnets ( output . Subnets , context ) : undefined , VpcId : __expectString ( output . VpcId ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbSubnetGroupSubnet = ( output , context ) : AwsRdsDbSubnetGroupSubnet => { return { SubnetAvailabilityZone : output . SubnetAvailabilityZone !== undefined && output . SubnetAvailabilityZone !== null ? deserializeAws_restJson1AwsRdsDbSubnetGroupSubnetAvailabilityZone ( output . SubnetAvailabilityZone , context ) : undefined , SubnetIdentifier : __expectString ( output . SubnetIdentifier ) , SubnetStatus : __expectString ( output . SubnetStatus ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbSubnetGroupSubnetAvailabilityZone = ( output , context ) : AwsRdsDbSubnetGroupSubnetAvailabilityZone => { return { Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1AwsRdsDbSubnetGroupSubnets = ( output , context ) : AwsRdsDbSubnetGroupSubnet [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRdsDbSubnetGroupSubnet ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRdsEventSubscriptionDetails = ( output , context ) : AwsRdsEventSubscriptionDetails => { return { CustSubscriptionId : __expectString ( output . CustSubscriptionId ) , CustomerAwsId : __expectString ( output . CustomerAwsId ) , Enabled : __expectBoolean ( output . Enabled ) , EventCategoriesList : output . EventCategoriesList !== undefined && output . EventCategoriesList !== null ? deserializeAws_restJson1NonEmptyStringList ( output . EventCategoriesList , context ) : undefined , EventSubscriptionArn : __expectString ( output . EventSubscriptionArn ) , SnsTopicArn : __expectString ( output . SnsTopicArn ) , SourceIdsList : output . SourceIdsList !== undefined && output . SourceIdsList !== null ? deserializeAws_restJson1NonEmptyStringList ( output . SourceIdsList , context ) : undefined , SourceType : __expectString ( output . SourceType ) , Status : __expectString ( output . Status ) , SubscriptionCreationTime : __expectString ( output . SubscriptionCreationTime ) , } as any ; } ; const deserializeAws_restJson1AwsRdsPendingCloudWatchLogsExports = ( output , context ) : AwsRdsPendingCloudWatchLogsExports => { return { LogTypesToDisable : output . LogTypesToDisable !== undefined && output . LogTypesToDisable !== null ? deserializeAws_restJson1StringList ( output . LogTypesToDisable , context ) : undefined , LogTypesToEnable : output . LogTypesToEnable !== undefined && output . LogTypesToEnable !== null ? deserializeAws_restJson1StringList ( output . LogTypesToEnable , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterNode = ( output , context ) : AwsRedshiftClusterClusterNode => { return { NodeRole : __expectString ( output . NodeRole ) , PrivateIpAddress : __expectString ( output . PrivateIpAddress ) , PublicIpAddress : __expectString ( output . PublicIpAddress ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterNodes = ( output , context ) : AwsRedshiftClusterClusterNode [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterClusterNode ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterParameterGroup = ( output , context ) : AwsRedshiftClusterClusterParameterGroup => { return { ClusterParameterStatusList : output . ClusterParameterStatusList !== undefined && output . ClusterParameterStatusList !== null ? deserializeAws_restJson1AwsRedshiftClusterClusterParameterStatusList ( output . ClusterParameterStatusList , context ) : undefined , ParameterApplyStatus : __expectString ( output . ParameterApplyStatus ) , ParameterGroupName : __expectString ( output . ParameterGroupName ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterParameterGroups = ( output , context ) : AwsRedshiftClusterClusterParameterGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterClusterParameterGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterParameterStatus = ( output , context ) : AwsRedshiftClusterClusterParameterStatus => { return { ParameterApplyErrorDescription : __expectString ( output . ParameterApplyErrorDescription ) , ParameterApplyStatus : __expectString ( output . ParameterApplyStatus ) , ParameterName : __expectString ( output . ParameterName ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterParameterStatusList = ( output , context ) : AwsRedshiftClusterClusterParameterStatus [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterClusterParameterStatus ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterSecurityGroup = ( output , context ) : AwsRedshiftClusterClusterSecurityGroup => { return { ClusterSecurityGroupName : __expectString ( output . ClusterSecurityGroupName ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterSecurityGroups = ( output , context ) : AwsRedshiftClusterClusterSecurityGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterClusterSecurityGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterClusterSnapshotCopyStatus = ( output , context ) : AwsRedshiftClusterClusterSnapshotCopyStatus => { return { DestinationRegion : __expectString ( output . DestinationRegion ) , ManualSnapshotRetentionPeriod : __expectInt32 ( output . ManualSnapshotRetentionPeriod ) , RetentionPeriod : __expectInt32 ( output . RetentionPeriod ) , SnapshotCopyGrantName : __expectString ( output . SnapshotCopyGrantName ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindow = ( output , context ) : AwsRedshiftClusterDeferredMaintenanceWindow => { return { DeferMaintenanceEndTime : __expectString ( output . DeferMaintenanceEndTime ) , DeferMaintenanceIdentifier : __expectString ( output . DeferMaintenanceIdentifier ) , DeferMaintenanceStartTime : __expectString ( output . DeferMaintenanceStartTime ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindows = ( output , context ) : AwsRedshiftClusterDeferredMaintenanceWindow [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindow ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterDetails = ( output , context ) : AwsRedshiftClusterDetails => { return { AllowVersionUpgrade : __expectBoolean ( output . AllowVersionUpgrade ) , AutomatedSnapshotRetentionPeriod : __expectInt32 ( output . AutomatedSnapshotRetentionPeriod ) , AvailabilityZone : __expectString ( output . AvailabilityZone ) , ClusterAvailabilityStatus : __expectString ( output . ClusterAvailabilityStatus ) , ClusterCreateTime : __expectString ( output . ClusterCreateTime ) , ClusterIdentifier : __expectString ( output . ClusterIdentifier ) , ClusterNodes : output . ClusterNodes !== undefined && output . ClusterNodes !== null ? deserializeAws_restJson1AwsRedshiftClusterClusterNodes ( output . ClusterNodes , context ) : undefined , ClusterParameterGroups : output . ClusterParameterGroups !== undefined && output . ClusterParameterGroups !== null ? deserializeAws_restJson1AwsRedshiftClusterClusterParameterGroups ( output . ClusterParameterGroups , context ) : undefined , ClusterPublicKey : __expectString ( output . ClusterPublicKey ) , ClusterRevisionNumber : __expectString ( output . ClusterRevisionNumber ) , ClusterSecurityGroups : output . ClusterSecurityGroups !== undefined && output . ClusterSecurityGroups !== null ? deserializeAws_restJson1AwsRedshiftClusterClusterSecurityGroups ( output . ClusterSecurityGroups , context ) : undefined , ClusterSnapshotCopyStatus : output . ClusterSnapshotCopyStatus !== undefined && output . ClusterSnapshotCopyStatus !== null ? deserializeAws_restJson1AwsRedshiftClusterClusterSnapshotCopyStatus ( output . ClusterSnapshotCopyStatus , context ) : undefined , ClusterStatus : __expectString ( output . ClusterStatus ) , ClusterSubnetGroupName : __expectString ( output . ClusterSubnetGroupName ) , ClusterVersion : __expectString ( output . ClusterVersion ) , DBName : __expectString ( output . DBName ) , DeferredMaintenanceWindows : output . DeferredMaintenanceWindows !== undefined && output . DeferredMaintenanceWindows !== null ? deserializeAws_restJson1AwsRedshiftClusterDeferredMaintenanceWindows ( output . DeferredMaintenanceWindows , context ) : undefined , ElasticIpStatus : output . ElasticIpStatus !== undefined && output . ElasticIpStatus !== null ? deserializeAws_restJson1AwsRedshiftClusterElasticIpStatus ( output . ElasticIpStatus , context ) : undefined , ElasticResizeNumberOfNodeOptions : __expectString ( output . ElasticResizeNumberOfNodeOptions ) , Encrypted : __expectBoolean ( output . Encrypted ) , Endpoint : output . Endpoint !== undefined && output . Endpoint !== null ? deserializeAws_restJson1AwsRedshiftClusterEndpoint ( output . Endpoint , context ) : undefined , EnhancedVpcRouting : __expectBoolean ( output . EnhancedVpcRouting ) , ExpectedNextSnapshotScheduleTime : __expectString ( output . ExpectedNextSnapshotScheduleTime ) , ExpectedNextSnapshotScheduleTimeStatus : __expectString ( output . ExpectedNextSnapshotScheduleTimeStatus ) , HsmStatus : output . HsmStatus !== undefined && output . HsmStatus !== null ? deserializeAws_restJson1AwsRedshiftClusterHsmStatus ( output . HsmStatus , context ) : undefined , IamRoles : output . IamRoles !== undefined && output . IamRoles !== null ? deserializeAws_restJson1AwsRedshiftClusterIamRoles ( output . IamRoles , context ) : undefined , KmsKeyId : __expectString ( output . KmsKeyId ) , MaintenanceTrackName : __expectString ( output . MaintenanceTrackName ) , ManualSnapshotRetentionPeriod : __expectInt32 ( output . ManualSnapshotRetentionPeriod ) , MasterUsername : __expectString ( output . MasterUsername ) , NextMaintenanceWindowStartTime : __expectString ( output . NextMaintenanceWindowStartTime ) , NodeType : __expectString ( output . NodeType ) , NumberOfNodes : __expectInt32 ( output . NumberOfNodes ) , PendingActions : output . PendingActions !== undefined && output . PendingActions !== null ? deserializeAws_restJson1StringList ( output . PendingActions , context ) : undefined , PendingModifiedValues : output . PendingModifiedValues !== undefined && output . PendingModifiedValues !== null ? deserializeAws_restJson1AwsRedshiftClusterPendingModifiedValues ( output . PendingModifiedValues , context ) : undefined , PreferredMaintenanceWindow : __expectString ( output . PreferredMaintenanceWindow ) , PubliclyAccessible : __expectBoolean ( output . PubliclyAccessible ) , ResizeInfo : output . ResizeInfo !== undefined && output . ResizeInfo !== null ? deserializeAws_restJson1AwsRedshiftClusterResizeInfo ( output . ResizeInfo , context ) : undefined , RestoreStatus : output . RestoreStatus !== undefined && output . RestoreStatus !== null ? deserializeAws_restJson1AwsRedshiftClusterRestoreStatus ( output . RestoreStatus , context ) : undefined , SnapshotScheduleIdentifier : __expectString ( output . SnapshotScheduleIdentifier ) , SnapshotScheduleState : __expectString ( output . SnapshotScheduleState ) , VpcId : __expectString ( output . VpcId ) , VpcSecurityGroups : output . VpcSecurityGroups !== undefined && output . VpcSecurityGroups !== null ? deserializeAws_restJson1AwsRedshiftClusterVpcSecurityGroups ( output . VpcSecurityGroups , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterElasticIpStatus = ( output , context ) : AwsRedshiftClusterElasticIpStatus => { return { ElasticIp : __expectString ( output . ElasticIp ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterEndpoint = ( output , context ) : AwsRedshiftClusterEndpoint => { return { Address : __expectString ( output . Address ) , Port : __expectInt32 ( output . Port ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterHsmStatus = ( output , context ) : AwsRedshiftClusterHsmStatus => { return { HsmClientCertificateIdentifier : __expectString ( output . HsmClientCertificateIdentifier ) , HsmConfigurationIdentifier : __expectString ( output . HsmConfigurationIdentifier ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterIamRole = ( output , context ) : AwsRedshiftClusterIamRole => { return { ApplyStatus : __expectString ( output . ApplyStatus ) , IamRoleArn : __expectString ( output . IamRoleArn ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterIamRoles = ( output , context ) : AwsRedshiftClusterIamRole [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterIamRole ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsRedshiftClusterPendingModifiedValues = ( output , context ) : AwsRedshiftClusterPendingModifiedValues => { return { AutomatedSnapshotRetentionPeriod : __expectInt32 ( output . AutomatedSnapshotRetentionPeriod ) , ClusterIdentifier : __expectString ( output . ClusterIdentifier ) , ClusterType : __expectString ( output . ClusterType ) , ClusterVersion : __expectString ( output . ClusterVersion ) , EncryptionType : __expectString ( output . EncryptionType ) , EnhancedVpcRouting : __expectBoolean ( output . EnhancedVpcRouting ) , MaintenanceTrackName : __expectString ( output . MaintenanceTrackName ) , MasterUserPassword : __expectString ( output . MasterUserPassword ) , NodeType : __expectString ( output . NodeType ) , NumberOfNodes : __expectInt32 ( output . NumberOfNodes ) , PubliclyAccessible : __expectBoolean ( output . PubliclyAccessible ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterResizeInfo = ( output , context ) : AwsRedshiftClusterResizeInfo => { return { AllowCancelResize : __expectBoolean ( output . AllowCancelResize ) , ResizeType : __expectString ( output . ResizeType ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterRestoreStatus = ( output , context ) : AwsRedshiftClusterRestoreStatus => { return { CurrentRestoreRateInMegaBytesPerSecond : __limitedParseDouble ( output . CurrentRestoreRateInMegaBytesPerSecond ) , ElapsedTimeInSeconds : __expectLong ( output . ElapsedTimeInSeconds ) , EstimatedTimeToCompletionInSeconds : __expectLong ( output . EstimatedTimeToCompletionInSeconds ) , ProgressInMegaBytes : __expectLong ( output . ProgressInMegaBytes ) , SnapshotSizeInMegaBytes : __expectLong ( output . SnapshotSizeInMegaBytes ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterVpcSecurityGroup = ( output , context ) : AwsRedshiftClusterVpcSecurityGroup => { return { Status : __expectString ( output . Status ) , VpcSecurityGroupId : __expectString ( output . VpcSecurityGroupId ) , } as any ; } ; const deserializeAws_restJson1AwsRedshiftClusterVpcSecurityGroups = ( output , context ) : AwsRedshiftClusterVpcSecurityGroup [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsRedshiftClusterVpcSecurityGroup ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3AccountPublicAccessBlockDetails = ( output , context ) : AwsS3AccountPublicAccessBlockDetails => { return { BlockPublicAcls : __expectBoolean ( output . BlockPublicAcls ) , BlockPublicPolicy : __expectBoolean ( output . BlockPublicPolicy ) , IgnorePublicAcls : __expectBoolean ( output . IgnorePublicAcls ) , RestrictPublicBuckets : __expectBoolean ( output . RestrictPublicBuckets ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationDetails => { return { Rules : output . Rules !== undefined && output . Rules !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesList ( output . Rules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails => { return { DaysAfterInitiation : __expectInt32 ( output . DaysAfterInitiation ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesDetails => { return { AbortIncompleteMultipartUpload : output . AbortIncompleteMultipartUpload !== undefined && output . AbortIncompleteMultipartUpload !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails ( output . AbortIncompleteMultipartUpload , context ) : undefined , ExpirationDate : __expectString ( output . ExpirationDate ) , ExpirationInDays : __expectInt32 ( output . ExpirationInDays ) , ExpiredObjectDeleteMarker : __expectBoolean ( output . ExpiredObjectDeleteMarker ) , Filter : output . Filter !== undefined && output . Filter !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails ( output . Filter , context ) : undefined , ID : __expectString ( output . ID ) , NoncurrentVersionExpirationInDays : __expectInt32 ( output . NoncurrentVersionExpirationInDays ) , NoncurrentVersionTransitions : output . NoncurrentVersionTransitions !== undefined && output . NoncurrentVersionTransitions !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList ( output . NoncurrentVersionTransitions , context ) : undefined , Prefix : __expectString ( output . Prefix ) , Status : __expectString ( output . Status ) , Transitions : output . Transitions !== undefined && output . Transitions !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsList ( output . Transitions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails => { return { Predicate : output . Predicate !== undefined && output . Predicate !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails ( output . Predicate , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails => { return { Operands : output . Operands !== undefined && output . Operands !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList ( output . Operands , context ) : undefined , Prefix : __expectString ( output . Prefix ) , Tag : output . Tag !== undefined && output . Tag !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails ( output . Tag , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails => { return { Prefix : __expectString ( output . Prefix ) , Tag : output . Tag !== undefined && output . Tag !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails ( output . Tag , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsList = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails => { return { Key : __expectString ( output . Key ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails => { return { Key : __expectString ( output . Key ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesList = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails => { return { Days : __expectInt32 ( output . Days ) , StorageClass : __expectString ( output . StorageClass ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsList = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails => { return { Date : __expectString ( output . Date ) , Days : __expectInt32 ( output . Days ) , StorageClass : __expectString ( output . StorageClass ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsList = ( output , context ) : AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketBucketVersioningConfiguration = ( output , context ) : AwsS3BucketBucketVersioningConfiguration => { return { IsMfaDeleteEnabled : __expectBoolean ( output . IsMfaDeleteEnabled ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketDetails = ( output , context ) : AwsS3BucketDetails => { return { AccessControlList : __expectString ( output . AccessControlList ) , BucketLifecycleConfiguration : output . BucketLifecycleConfiguration !== undefined && output . BucketLifecycleConfiguration !== null ? deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationDetails ( output . BucketLifecycleConfiguration , context ) : undefined , BucketLoggingConfiguration : output . BucketLoggingConfiguration !== undefined && output . BucketLoggingConfiguration !== null ? deserializeAws_restJson1AwsS3BucketLoggingConfiguration ( output . BucketLoggingConfiguration , context ) : undefined , BucketNotificationConfiguration : output . BucketNotificationConfiguration !== undefined && output . BucketNotificationConfiguration !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfiguration ( output . BucketNotificationConfiguration , context ) : undefined , BucketVersioningConfiguration : output . BucketVersioningConfiguration !== undefined && output . BucketVersioningConfiguration !== null ? deserializeAws_restJson1AwsS3BucketBucketVersioningConfiguration ( output . BucketVersioningConfiguration , context ) : undefined , BucketWebsiteConfiguration : output . BucketWebsiteConfiguration !== undefined && output . BucketWebsiteConfiguration !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfiguration ( output . BucketWebsiteConfiguration , context ) : undefined , CreatedAt : __expectString ( output . CreatedAt ) , OwnerAccountId : __expectString ( output . OwnerAccountId ) , OwnerId : __expectString ( output . OwnerId ) , OwnerName : __expectString ( output . OwnerName ) , PublicAccessBlockConfiguration : output . PublicAccessBlockConfiguration !== undefined && output . PublicAccessBlockConfiguration !== null ? deserializeAws_restJson1AwsS3AccountPublicAccessBlockDetails ( output . PublicAccessBlockConfiguration , context ) : undefined , ServerSideEncryptionConfiguration : output . ServerSideEncryptionConfiguration !== undefined && output . ServerSideEncryptionConfiguration !== null ? deserializeAws_restJson1AwsS3BucketServerSideEncryptionConfiguration ( output . ServerSideEncryptionConfiguration , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketLoggingConfiguration = ( output , context ) : AwsS3BucketLoggingConfiguration => { return { DestinationBucketName : __expectString ( output . DestinationBucketName ) , LogFilePrefix : __expectString ( output . LogFilePrefix ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfiguration = ( output , context ) : AwsS3BucketNotificationConfiguration => { return { Configurations : output . Configurations !== undefined && output . Configurations !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfigurationDetails ( output . Configurations , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationDetail = ( output , context ) : AwsS3BucketNotificationConfigurationDetail => { return { Destination : __expectString ( output . Destination ) , Events : output . Events !== undefined && output . Events !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfigurationEvents ( output . Events , context ) : undefined , Filter : output . Filter !== undefined && output . Filter !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfigurationFilter ( output . Filter , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationDetails = ( output , context ) : AwsS3BucketNotificationConfigurationDetail [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketNotificationConfigurationDetail ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationEvents = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationFilter = ( output , context ) : AwsS3BucketNotificationConfigurationFilter => { return { S3KeyFilter : output . S3KeyFilter !== undefined && output . S3KeyFilter !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilter ( output . S3KeyFilter , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilter = ( output , context ) : AwsS3BucketNotificationConfigurationS3KeyFilter => { return { FilterRules : output . FilterRules !== undefined && output . FilterRules !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRules ( output . FilterRules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRule = ( output , context ) : AwsS3BucketNotificationConfigurationS3KeyFilterRule => { return { Name : __expectString ( output . Name ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRules = ( output , context ) : AwsS3BucketNotificationConfigurationS3KeyFilterRule [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketNotificationConfigurationS3KeyFilterRule ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketServerSideEncryptionByDefault = ( output , context ) : AwsS3BucketServerSideEncryptionByDefault => { return { KMSMasterKeyID : __expectString ( output . KMSMasterKeyID ) , SSEAlgorithm : __expectString ( output . SSEAlgorithm ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketServerSideEncryptionConfiguration = ( output , context ) : AwsS3BucketServerSideEncryptionConfiguration => { return { Rules : output . Rules !== undefined && output . Rules !== null ? deserializeAws_restJson1AwsS3BucketServerSideEncryptionRules ( output . Rules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketServerSideEncryptionRule = ( output , context ) : AwsS3BucketServerSideEncryptionRule => { return { ApplyServerSideEncryptionByDefault : output . ApplyServerSideEncryptionByDefault !== undefined && output . ApplyServerSideEncryptionByDefault !== null ? deserializeAws_restJson1AwsS3BucketServerSideEncryptionByDefault ( output . ApplyServerSideEncryptionByDefault , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketServerSideEncryptionRules = ( output , context ) : AwsS3BucketServerSideEncryptionRule [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketServerSideEncryptionRule ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfiguration = ( output , context ) : AwsS3BucketWebsiteConfiguration => { return { ErrorDocument : __expectString ( output . ErrorDocument ) , IndexDocumentSuffix : __expectString ( output . IndexDocumentSuffix ) , RedirectAllRequestsTo : output . RedirectAllRequestsTo !== undefined && output . RedirectAllRequestsTo !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRedirectTo ( output . RedirectAllRequestsTo , context ) : undefined , RoutingRules : output . RoutingRules !== undefined && output . RoutingRules !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRules ( output . RoutingRules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRedirectTo = ( output , context ) : AwsS3BucketWebsiteConfigurationRedirectTo => { return { Hostname : __expectString ( output . Hostname ) , Protocol : __expectString ( output . Protocol ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRule = ( output , context ) : AwsS3BucketWebsiteConfigurationRoutingRule => { return { Condition : output . Condition !== undefined && output . Condition !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleCondition ( output . Condition , context ) : undefined , Redirect : output . Redirect !== undefined && output . Redirect !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleRedirect ( output . Redirect , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleCondition = ( output , context ) : AwsS3BucketWebsiteConfigurationRoutingRuleCondition => { return { HttpErrorCodeReturnedEquals : __expectString ( output . HttpErrorCodeReturnedEquals ) , KeyPrefixEquals : __expectString ( output . KeyPrefixEquals ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRuleRedirect = ( output , context ) : AwsS3BucketWebsiteConfigurationRoutingRuleRedirect => { return { Hostname : __expectString ( output . Hostname ) , HttpRedirectCode : __expectString ( output . HttpRedirectCode ) , Protocol : __expectString ( output . Protocol ) , ReplaceKeyPrefixWith : __expectString ( output . ReplaceKeyPrefixWith ) , ReplaceKeyWith : __expectString ( output . ReplaceKeyWith ) , } as any ; } ; const deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRules = ( output , context ) : AwsS3BucketWebsiteConfigurationRoutingRule [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsS3BucketWebsiteConfigurationRoutingRule ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsS3ObjectDetails = ( output , context ) : AwsS3ObjectDetails => { return { ContentType : __expectString ( output . ContentType ) , ETag : __expectString ( output . ETag ) , LastModified : __expectString ( output . LastModified ) , SSEKMSKeyId : __expectString ( output . SSEKMSKeyId ) , ServerSideEncryption : __expectString ( output . ServerSideEncryption ) , VersionId : __expectString ( output . VersionId ) , } as any ; } ; const deserializeAws_restJson1AwsSecretsManagerSecretDetails = ( output , context ) : AwsSecretsManagerSecretDetails => { return { Deleted : __expectBoolean ( output . Deleted ) , Description : __expectString ( output . Description ) , KmsKeyId : __expectString ( output . KmsKeyId ) , Name : __expectString ( output . Name ) , RotationEnabled : __expectBoolean ( output . RotationEnabled ) , RotationLambdaArn : __expectString ( output . RotationLambdaArn ) , RotationOccurredWithinFrequency : __expectBoolean ( output . RotationOccurredWithinFrequency ) , RotationRules : output . RotationRules !== undefined && output . RotationRules !== null ? deserializeAws_restJson1AwsSecretsManagerSecretRotationRules ( output . RotationRules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsSecretsManagerSecretRotationRules = ( output , context ) : AwsSecretsManagerSecretRotationRules => { return { AutomaticallyAfterDays : __expectInt32 ( output . AutomaticallyAfterDays ) , } as any ; } ; const deserializeAws_restJson1AwsSecurityFinding = ( output , context ) : AwsSecurityFinding => { return { Action : output . Action !== undefined && output . Action !== null ? deserializeAws_restJson1Action ( output . Action , context ) : undefined , AwsAccountId : __expectString ( output . AwsAccountId ) , CompanyName : __expectString ( output . CompanyName ) , Compliance : output . Compliance !== undefined && output . Compliance !== null ? deserializeAws_restJson1Compliance ( output . Compliance , context ) : undefined , Confidence : __expectInt32 ( output . Confidence ) , CreatedAt : __expectString ( output . CreatedAt ) , Criticality : __expectInt32 ( output . Criticality ) , Description : __expectString ( output . Description ) , FindingProviderFields : output . FindingProviderFields !== undefined && output . FindingProviderFields !== null ? deserializeAws_restJson1FindingProviderFields ( output . FindingProviderFields , context ) : undefined , FirstObservedAt : __expectString ( output . FirstObservedAt ) , GeneratorId : __expectString ( output . GeneratorId ) , Id : __expectString ( output . Id ) , LastObservedAt : __expectString ( output . LastObservedAt ) , Malware : output . Malware !== undefined && output . Malware !== null ? deserializeAws_restJson1MalwareList ( output . Malware , context ) : undefined , Network : output . Network !== undefined && output . Network !== null ? deserializeAws_restJson1Network ( output . Network , context ) : undefined , NetworkPath : output . NetworkPath !== undefined && output . NetworkPath !== null ? deserializeAws_restJson1NetworkPathList ( output . NetworkPath , context ) : undefined , Note : output . Note !== undefined && output . Note !== null ? deserializeAws_restJson1Note ( output . Note , context ) : undefined , PatchSummary : output . PatchSummary !== undefined && output . PatchSummary !== null ? deserializeAws_restJson1PatchSummary ( output . PatchSummary , context ) : undefined , Process : output . Process !== undefined && output . Process !== null ? deserializeAws_restJson1ProcessDetails ( output . Process , context ) : undefined , ProductArn : __expectString ( output . ProductArn ) , ProductFields : output . ProductFields !== undefined && output . ProductFields !== null ? deserializeAws_restJson1FieldMap ( output . ProductFields , context ) : undefined , ProductName : __expectString ( output . ProductName ) , RecordState : __expectString ( output . RecordState ) , Region : __expectString ( output . Region ) , RelatedFindings : output . RelatedFindings !== undefined && output . RelatedFindings !== null ? deserializeAws_restJson1RelatedFindingList ( output . RelatedFindings , context ) : undefined , Remediation : output . Remediation !== undefined && output . Remediation !== null ? deserializeAws_restJson1Remediation ( output . Remediation , context ) : undefined , Resources : output . Resources !== undefined && output . Resources !== null ? deserializeAws_restJson1ResourceList ( output . Resources , context ) : undefined , SchemaVersion : __expectString ( output . SchemaVersion ) , Severity : output . Severity !== undefined && output . Severity !== null ? deserializeAws_restJson1Severity ( output . Severity , context ) : undefined , SourceUrl : __expectString ( output . SourceUrl ) , ThreatIntelIndicators : output . ThreatIntelIndicators !== undefined && output . ThreatIntelIndicators !== null ? deserializeAws_restJson1ThreatIntelIndicatorList ( output . ThreatIntelIndicators , context ) : undefined , Title : __expectString ( output . Title ) , Types : output . Types !== undefined && output . Types !== null ? deserializeAws_restJson1TypeList ( output . Types , context ) : undefined , UpdatedAt : __expectString ( output . UpdatedAt ) , UserDefinedFields : output . UserDefinedFields !== undefined && output . UserDefinedFields !== null ? deserializeAws_restJson1FieldMap ( output . UserDefinedFields , context ) : undefined , VerificationState : __expectString ( output . VerificationState ) , Vulnerabilities : output . Vulnerabilities !== undefined && output . Vulnerabilities !== null ? deserializeAws_restJson1VulnerabilityList ( output . Vulnerabilities , context ) : undefined , Workflow : output . Workflow !== undefined && output . Workflow !== null ? deserializeAws_restJson1Workflow ( output . Workflow , context ) : undefined , WorkflowState : __expectString ( output . WorkflowState ) , } as any ; } ; const deserializeAws_restJson1AwsSecurityFindingFilters = ( output , context ) : AwsSecurityFindingFilters => { return { AwsAccountId : output . AwsAccountId !== undefined && output . AwsAccountId !== null ? deserializeAws_restJson1StringFilterList ( output . AwsAccountId , context ) : undefined , CompanyName : output . CompanyName !== undefined && output . CompanyName !== null ? deserializeAws_restJson1StringFilterList ( output . CompanyName , context ) : undefined , ComplianceStatus : output . ComplianceStatus !== undefined && output . ComplianceStatus !== null ? deserializeAws_restJson1StringFilterList ( output . ComplianceStatus , context ) : undefined , Confidence : output . Confidence !== undefined && output . Confidence !== null ? deserializeAws_restJson1NumberFilterList ( output . Confidence , context ) : undefined , CreatedAt : output . CreatedAt !== undefined && output . CreatedAt !== null ? deserializeAws_restJson1DateFilterList ( output . CreatedAt , context ) : undefined , Criticality : output . Criticality !== undefined && output . Criticality !== null ? deserializeAws_restJson1NumberFilterList ( output . Criticality , context ) : undefined , Description : output . Description !== undefined && output . Description !== null ? deserializeAws_restJson1StringFilterList ( output . Description , context ) : undefined , FindingProviderFieldsConfidence : output . FindingProviderFieldsConfidence !== undefined && output . FindingProviderFieldsConfidence !== null ? deserializeAws_restJson1NumberFilterList ( output . FindingProviderFieldsConfidence , context ) : undefined , FindingProviderFieldsCriticality : output . FindingProviderFieldsCriticality !== undefined && output . FindingProviderFieldsCriticality !== null ? deserializeAws_restJson1NumberFilterList ( output . FindingProviderFieldsCriticality , context ) : undefined , FindingProviderFieldsRelatedFindingsId : output . FindingProviderFieldsRelatedFindingsId !== undefined && output . FindingProviderFieldsRelatedFindingsId !== null ? deserializeAws_restJson1StringFilterList ( output . FindingProviderFieldsRelatedFindingsId , context ) : undefined , FindingProviderFieldsRelatedFindingsProductArn : output . FindingProviderFieldsRelatedFindingsProductArn !== undefined && output . FindingProviderFieldsRelatedFindingsProductArn !== null ? deserializeAws_restJson1StringFilterList ( output . FindingProviderFieldsRelatedFindingsProductArn , context ) : undefined , FindingProviderFieldsSeverityLabel : output . FindingProviderFieldsSeverityLabel !== undefined && output . FindingProviderFieldsSeverityLabel !== null ? deserializeAws_restJson1StringFilterList ( output . FindingProviderFieldsSeverityLabel , context ) : undefined , FindingProviderFieldsSeverityOriginal : output . FindingProviderFieldsSeverityOriginal !== undefined && output . FindingProviderFieldsSeverityOriginal !== null ? deserializeAws_restJson1StringFilterList ( output . FindingProviderFieldsSeverityOriginal , context ) : undefined , FindingProviderFieldsTypes : output . FindingProviderFieldsTypes !== undefined && output . FindingProviderFieldsTypes !== null ? deserializeAws_restJson1StringFilterList ( output . FindingProviderFieldsTypes , context ) : undefined , FirstObservedAt : output . FirstObservedAt !== undefined && output . FirstObservedAt !== null ? deserializeAws_restJson1DateFilterList ( output . FirstObservedAt , context ) : undefined , GeneratorId : output . GeneratorId !== undefined && output . GeneratorId !== null ? deserializeAws_restJson1StringFilterList ( output . GeneratorId , context ) : undefined , Id : output . Id !== undefined && output . Id !== null ? deserializeAws_restJson1StringFilterList ( output . Id , context ) : undefined , Keyword : output . Keyword !== undefined && output . Keyword !== null ? deserializeAws_restJson1KeywordFilterList ( output . Keyword , context ) : undefined , LastObservedAt : output . LastObservedAt !== undefined && output . LastObservedAt !== null ? deserializeAws_restJson1DateFilterList ( output . LastObservedAt , context ) : undefined , MalwareName : output . MalwareName !== undefined && output . MalwareName !== null ? deserializeAws_restJson1StringFilterList ( output . MalwareName , context ) : undefined , MalwarePath : output . MalwarePath !== undefined && output . MalwarePath !== null ? deserializeAws_restJson1StringFilterList ( output . MalwarePath , context ) : undefined , MalwareState : output . MalwareState !== undefined && output . MalwareState !== null ? deserializeAws_restJson1StringFilterList ( output . MalwareState , context ) : undefined , MalwareType : output . MalwareType !== undefined && output . MalwareType !== null ? deserializeAws_restJson1StringFilterList ( output . MalwareType , context ) : undefined , NetworkDestinationDomain : output . NetworkDestinationDomain !== undefined && output . NetworkDestinationDomain !== null ? deserializeAws_restJson1StringFilterList ( output . NetworkDestinationDomain , context ) : undefined , NetworkDestinationIpV4 : output . NetworkDestinationIpV4 !== undefined && output . NetworkDestinationIpV4 !== null ? deserializeAws_restJson1IpFilterList ( output . NetworkDestinationIpV4 , context ) : undefined , NetworkDestinationIpV6 : output . NetworkDestinationIpV6 !== undefined && output . NetworkDestinationIpV6 !== null ? deserializeAws_restJson1IpFilterList ( output . NetworkDestinationIpV6 , context ) : undefined , NetworkDestinationPort : output . NetworkDestinationPort !== undefined && output . NetworkDestinationPort !== null ? deserializeAws_restJson1NumberFilterList ( output . NetworkDestinationPort , context ) : undefined , NetworkDirection : output . NetworkDirection !== undefined && output . NetworkDirection !== null ? deserializeAws_restJson1StringFilterList ( output . NetworkDirection , context ) : undefined , NetworkProtocol : output . NetworkProtocol !== undefined && output . NetworkProtocol !== null ? deserializeAws_restJson1StringFilterList ( output . NetworkProtocol , context ) : undefined , NetworkSourceDomain : output . NetworkSourceDomain !== undefined && output . NetworkSourceDomain !== null ? deserializeAws_restJson1StringFilterList ( output . NetworkSourceDomain , context ) : undefined , NetworkSourceIpV4 : output . NetworkSourceIpV4 !== undefined && output . NetworkSourceIpV4 !== null ? deserializeAws_restJson1IpFilterList ( output . NetworkSourceIpV4 , context ) : undefined , NetworkSourceIpV6 : output . NetworkSourceIpV6 !== undefined && output . NetworkSourceIpV6 !== null ? deserializeAws_restJson1IpFilterList ( output . NetworkSourceIpV6 , context ) : undefined , NetworkSourceMac : output . NetworkSourceMac !== undefined && output . NetworkSourceMac !== null ? deserializeAws_restJson1StringFilterList ( output . NetworkSourceMac , context ) : undefined , NetworkSourcePort : output . NetworkSourcePort !== undefined && output . NetworkSourcePort !== null ? deserializeAws_restJson1NumberFilterList ( output . NetworkSourcePort , context ) : undefined , NoteText : output . NoteText !== undefined && output . NoteText !== null ? deserializeAws_restJson1StringFilterList ( output . NoteText , context ) : undefined , NoteUpdatedAt : output . NoteUpdatedAt !== undefined && output . NoteUpdatedAt !== null ? deserializeAws_restJson1DateFilterList ( output . NoteUpdatedAt , context ) : undefined , NoteUpdatedBy : output . NoteUpdatedBy !== undefined && output . NoteUpdatedBy !== null ? deserializeAws_restJson1StringFilterList ( output . NoteUpdatedBy , context ) : undefined , ProcessLaunchedAt : output . ProcessLaunchedAt !== undefined && output . ProcessLaunchedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ProcessLaunchedAt , context ) : undefined , ProcessName : output . ProcessName !== undefined && output . ProcessName !== null ? deserializeAws_restJson1StringFilterList ( output . ProcessName , context ) : undefined , ProcessParentPid : output . ProcessParentPid !== undefined && output . ProcessParentPid !== null ? deserializeAws_restJson1NumberFilterList ( output . ProcessParentPid , context ) : undefined , ProcessPath : output . ProcessPath !== undefined && output . ProcessPath !== null ? deserializeAws_restJson1StringFilterList ( output . ProcessPath , context ) : undefined , ProcessPid : output . ProcessPid !== undefined && output . ProcessPid !== null ? deserializeAws_restJson1NumberFilterList ( output . ProcessPid , context ) : undefined , ProcessTerminatedAt : output . ProcessTerminatedAt !== undefined && output . ProcessTerminatedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ProcessTerminatedAt , context ) : undefined , ProductArn : output . ProductArn !== undefined && output . ProductArn !== null ? deserializeAws_restJson1StringFilterList ( output . ProductArn , context ) : undefined , ProductFields : output . ProductFields !== undefined && output . ProductFields !== null ? deserializeAws_restJson1MapFilterList ( output . ProductFields , context ) : undefined , ProductName : output . ProductName !== undefined && output . ProductName !== null ? deserializeAws_restJson1StringFilterList ( output . ProductName , context ) : undefined , RecommendationText : output . RecommendationText !== undefined && output . RecommendationText !== null ? deserializeAws_restJson1StringFilterList ( output . RecommendationText , context ) : undefined , RecordState : output . RecordState !== undefined && output . RecordState !== null ? deserializeAws_restJson1StringFilterList ( output . RecordState , context ) : undefined , Region : output . Region !== undefined && output . Region !== null ? deserializeAws_restJson1StringFilterList ( output . Region , context ) : undefined , RelatedFindingsId : output . RelatedFindingsId !== undefined && output . RelatedFindingsId !== null ? deserializeAws_restJson1StringFilterList ( output . RelatedFindingsId , context ) : undefined , RelatedFindingsProductArn : output . RelatedFindingsProductArn !== undefined && output . RelatedFindingsProductArn !== null ? deserializeAws_restJson1StringFilterList ( output . RelatedFindingsProductArn , context ) : undefined , ResourceAwsEc2InstanceIamInstanceProfileArn : output . ResourceAwsEc2InstanceIamInstanceProfileArn !== undefined && output . ResourceAwsEc2InstanceIamInstanceProfileArn !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceIamInstanceProfileArn , context ) : undefined , ResourceAwsEc2InstanceImageId : output . ResourceAwsEc2InstanceImageId !== undefined && output . ResourceAwsEc2InstanceImageId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceImageId , context ) : undefined , ResourceAwsEc2InstanceIpV4Addresses : output . ResourceAwsEc2InstanceIpV4Addresses !== undefined && output . ResourceAwsEc2InstanceIpV4Addresses !== null ? deserializeAws_restJson1IpFilterList ( output . ResourceAwsEc2InstanceIpV4Addresses , context ) : undefined , ResourceAwsEc2InstanceIpV6Addresses : output . ResourceAwsEc2InstanceIpV6Addresses !== undefined && output . ResourceAwsEc2InstanceIpV6Addresses !== null ? deserializeAws_restJson1IpFilterList ( output . ResourceAwsEc2InstanceIpV6Addresses , context ) : undefined , ResourceAwsEc2InstanceKeyName : output . ResourceAwsEc2InstanceKeyName !== undefined && output . ResourceAwsEc2InstanceKeyName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceKeyName , context ) : undefined , ResourceAwsEc2InstanceLaunchedAt : output . ResourceAwsEc2InstanceLaunchedAt !== undefined && output . ResourceAwsEc2InstanceLaunchedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ResourceAwsEc2InstanceLaunchedAt , context ) : undefined , ResourceAwsEc2InstanceSubnetId : output . ResourceAwsEc2InstanceSubnetId !== undefined && output . ResourceAwsEc2InstanceSubnetId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceSubnetId , context ) : undefined , ResourceAwsEc2InstanceType : output . ResourceAwsEc2InstanceType !== undefined && output . ResourceAwsEc2InstanceType !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceType , context ) : undefined , ResourceAwsEc2InstanceVpcId : output . ResourceAwsEc2InstanceVpcId !== undefined && output . ResourceAwsEc2InstanceVpcId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsEc2InstanceVpcId , context ) : undefined , ResourceAwsIamAccessKeyCreatedAt : output . ResourceAwsIamAccessKeyCreatedAt !== undefined && output . ResourceAwsIamAccessKeyCreatedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ResourceAwsIamAccessKeyCreatedAt , context ) : undefined , ResourceAwsIamAccessKeyPrincipalName : output . ResourceAwsIamAccessKeyPrincipalName !== undefined && output . ResourceAwsIamAccessKeyPrincipalName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsIamAccessKeyPrincipalName , context ) : undefined , ResourceAwsIamAccessKeyStatus : output . ResourceAwsIamAccessKeyStatus !== undefined && output . ResourceAwsIamAccessKeyStatus !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsIamAccessKeyStatus , context ) : undefined , ResourceAwsIamAccessKeyUserName : output . ResourceAwsIamAccessKeyUserName !== undefined && output . ResourceAwsIamAccessKeyUserName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsIamAccessKeyUserName , context ) : undefined , ResourceAwsIamUserUserName : output . ResourceAwsIamUserUserName !== undefined && output . ResourceAwsIamUserUserName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsIamUserUserName , context ) : undefined , ResourceAwsS3BucketOwnerId : output . ResourceAwsS3BucketOwnerId !== undefined && output . ResourceAwsS3BucketOwnerId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsS3BucketOwnerId , context ) : undefined , ResourceAwsS3BucketOwnerName : output . ResourceAwsS3BucketOwnerName !== undefined && output . ResourceAwsS3BucketOwnerName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceAwsS3BucketOwnerName , context ) : undefined , ResourceContainerImageId : output . ResourceContainerImageId !== undefined && output . ResourceContainerImageId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceContainerImageId , context ) : undefined , ResourceContainerImageName : output . ResourceContainerImageName !== undefined && output . ResourceContainerImageName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceContainerImageName , context ) : undefined , ResourceContainerLaunchedAt : output . ResourceContainerLaunchedAt !== undefined && output . ResourceContainerLaunchedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ResourceContainerLaunchedAt , context ) : undefined , ResourceContainerName : output . ResourceContainerName !== undefined && output . ResourceContainerName !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceContainerName , context ) : undefined , ResourceDetailsOther : output . ResourceDetailsOther !== undefined && output . ResourceDetailsOther !== null ? deserializeAws_restJson1MapFilterList ( output . ResourceDetailsOther , context ) : undefined , ResourceId : output . ResourceId !== undefined && output . ResourceId !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceId , context ) : undefined , ResourcePartition : output . ResourcePartition !== undefined && output . ResourcePartition !== null ? deserializeAws_restJson1StringFilterList ( output . ResourcePartition , context ) : undefined , ResourceRegion : output . ResourceRegion !== undefined && output . ResourceRegion !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceRegion , context ) : undefined , ResourceTags : output . ResourceTags !== undefined && output . ResourceTags !== null ? deserializeAws_restJson1MapFilterList ( output . ResourceTags , context ) : undefined , ResourceType : output . ResourceType !== undefined && output . ResourceType !== null ? deserializeAws_restJson1StringFilterList ( output . ResourceType , context ) : undefined , SeverityLabel : output . SeverityLabel !== undefined && output . SeverityLabel !== null ? deserializeAws_restJson1StringFilterList ( output . SeverityLabel , context ) : undefined , SeverityNormalized : output . SeverityNormalized !== undefined && output . SeverityNormalized !== null ? deserializeAws_restJson1NumberFilterList ( output . SeverityNormalized , context ) : undefined , SeverityProduct : output . SeverityProduct !== undefined && output . SeverityProduct !== null ? deserializeAws_restJson1NumberFilterList ( output . SeverityProduct , context ) : undefined , SourceUrl : output . SourceUrl !== undefined && output . SourceUrl !== null ? deserializeAws_restJson1StringFilterList ( output . SourceUrl , context ) : undefined , ThreatIntelIndicatorCategory : output . ThreatIntelIndicatorCategory !== undefined && output . ThreatIntelIndicatorCategory !== null ? deserializeAws_restJson1StringFilterList ( output . ThreatIntelIndicatorCategory , context ) : undefined , ThreatIntelIndicatorLastObservedAt : output . ThreatIntelIndicatorLastObservedAt !== undefined && output . ThreatIntelIndicatorLastObservedAt !== null ? deserializeAws_restJson1DateFilterList ( output . ThreatIntelIndicatorLastObservedAt , context ) : undefined , ThreatIntelIndicatorSource : output . ThreatIntelIndicatorSource !== undefined && output . ThreatIntelIndicatorSource !== null ? deserializeAws_restJson1StringFilterList ( output . ThreatIntelIndicatorSource , context ) : undefined , ThreatIntelIndicatorSourceUrl : output . ThreatIntelIndicatorSourceUrl !== undefined && output . ThreatIntelIndicatorSourceUrl !== null ? deserializeAws_restJson1StringFilterList ( output . ThreatIntelIndicatorSourceUrl , context ) : undefined , ThreatIntelIndicatorType : output . ThreatIntelIndicatorType !== undefined && output . ThreatIntelIndicatorType !== null ? deserializeAws_restJson1StringFilterList ( output . ThreatIntelIndicatorType , context ) : undefined , ThreatIntelIndicatorValue : output . ThreatIntelIndicatorValue !== undefined && output . ThreatIntelIndicatorValue !== null ? deserializeAws_restJson1StringFilterList ( output . ThreatIntelIndicatorValue , context ) : undefined , Title : output . Title !== undefined && output . Title !== null ? deserializeAws_restJson1StringFilterList ( output . Title , context ) : undefined , Type : output . Type !== undefined && output . Type !== null ? deserializeAws_restJson1StringFilterList ( output . Type , context ) : undefined , UpdatedAt : output . UpdatedAt !== undefined && output . UpdatedAt !== null ? deserializeAws_restJson1DateFilterList ( output . UpdatedAt , context ) : undefined , UserDefinedFields : output . UserDefinedFields !== undefined && output . UserDefinedFields !== null ? deserializeAws_restJson1MapFilterList ( output . UserDefinedFields , context ) : undefined , VerificationState : output . VerificationState !== undefined && output . VerificationState !== null ? deserializeAws_restJson1StringFilterList ( output . VerificationState , context ) : undefined , WorkflowState : output . WorkflowState !== undefined && output . WorkflowState !== null ? deserializeAws_restJson1StringFilterList ( output . WorkflowState , context ) : undefined , WorkflowStatus : output . WorkflowStatus !== undefined && output . WorkflowStatus !== null ? deserializeAws_restJson1StringFilterList ( output . WorkflowStatus , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsSecurityFindingIdentifier = ( output , context ) : AwsSecurityFindingIdentifier => { return { Id : __expectString ( output . Id ) , ProductArn : __expectString ( output . ProductArn ) , } as any ; } ; const deserializeAws_restJson1AwsSecurityFindingIdentifierList = ( output , context ) : AwsSecurityFindingIdentifier [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsSecurityFindingIdentifier ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsSecurityFindingList = ( output , context ) : AwsSecurityFinding [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsSecurityFinding ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsSnsTopicDetails = ( output , context ) : AwsSnsTopicDetails => { return { KmsMasterKeyId : __expectString ( output . KmsMasterKeyId ) , Owner : __expectString ( output . Owner ) , Subscription : output . Subscription !== undefined && output . Subscription !== null ? deserializeAws_restJson1AwsSnsTopicSubscriptionList ( output . Subscription , context ) : undefined , TopicName : __expectString ( output . TopicName ) , } as any ; } ; const deserializeAws_restJson1AwsSnsTopicSubscription = ( output , context ) : AwsSnsTopicSubscription => { return { Endpoint : __expectString ( output . Endpoint ) , Protocol : __expectString ( output . Protocol ) , } as any ; } ; const deserializeAws_restJson1AwsSnsTopicSubscriptionList = ( output , context ) : AwsSnsTopicSubscription [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsSnsTopicSubscription ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsSqsQueueDetails = ( output , context ) : AwsSqsQueueDetails => { return { DeadLetterTargetArn : __expectString ( output . DeadLetterTargetArn ) , KmsDataKeyReusePeriodSeconds : __expectInt32 ( output . KmsDataKeyReusePeriodSeconds ) , KmsMasterKeyId : __expectString ( output . KmsMasterKeyId ) , QueueName : __expectString ( output . QueueName ) , } as any ; } ; const deserializeAws_restJson1AwsSsmComplianceSummary = ( output , context ) : AwsSsmComplianceSummary => { return { ComplianceType : __expectString ( output . ComplianceType ) , CompliantCriticalCount : __expectInt32 ( output . CompliantCriticalCount ) , CompliantHighCount : __expectInt32 ( output . CompliantHighCount ) , CompliantInformationalCount : __expectInt32 ( output . CompliantInformationalCount ) , CompliantLowCount : __expectInt32 ( output . CompliantLowCount ) , CompliantMediumCount : __expectInt32 ( output . CompliantMediumCount ) , CompliantUnspecifiedCount : __expectInt32 ( output . CompliantUnspecifiedCount ) , ExecutionType : __expectString ( output . ExecutionType ) , NonCompliantCriticalCount : __expectInt32 ( output . NonCompliantCriticalCount ) , NonCompliantHighCount : __expectInt32 ( output . NonCompliantHighCount ) , NonCompliantInformationalCount : __expectInt32 ( output . NonCompliantInformationalCount ) , NonCompliantLowCount : __expectInt32 ( output . NonCompliantLowCount ) , NonCompliantMediumCount : __expectInt32 ( output . NonCompliantMediumCount ) , NonCompliantUnspecifiedCount : __expectInt32 ( output . NonCompliantUnspecifiedCount ) , OverallSeverity : __expectString ( output . OverallSeverity ) , PatchBaselineId : __expectString ( output . PatchBaselineId ) , PatchGroup : __expectString ( output . PatchGroup ) , Status : __expectString ( output . Status ) , } as any ; } ; const deserializeAws_restJson1AwsSsmPatch = ( output , context ) : AwsSsmPatch => { return { ComplianceSummary : output . ComplianceSummary !== undefined && output . ComplianceSummary !== null ? deserializeAws_restJson1AwsSsmComplianceSummary ( output . ComplianceSummary , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsSsmPatchComplianceDetails = ( output , context ) : AwsSsmPatchComplianceDetails => { return { Patch : output . Patch !== undefined && output . Patch !== null ? deserializeAws_restJson1AwsSsmPatch ( output . Patch , context ) : undefined , } as any ; } ; const deserializeAws_restJson1AwsWafRateBasedRuleDetails = ( output , context ) : AwsWafRateBasedRuleDetails => { return { MatchPredicates : output . MatchPredicates !== undefined && output . MatchPredicates !== null ? deserializeAws_restJson1AwsWafRateBasedRuleMatchPredicateList ( output . MatchPredicates , context ) : undefined , MetricName : __expectString ( output . MetricName ) , Name : __expectString ( output . Name ) , RateKey : __expectString ( output . RateKey ) , RateLimit : __expectLong ( output . RateLimit ) , RuleId : __expectString ( output . RuleId ) , } as any ; } ; const deserializeAws_restJson1AwsWafRateBasedRuleMatchPredicate = ( output , context ) : AwsWafRateBasedRuleMatchPredicate => { return { DataId : __expectString ( output . DataId ) , Negated : __expectBoolean ( output . Negated ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsWafRateBasedRuleMatchPredicateList = ( output , context ) : AwsWafRateBasedRuleMatchPredicate [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsWafRateBasedRuleMatchPredicate ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsWafRegionalRateBasedRuleDetails = ( output , context ) : AwsWafRegionalRateBasedRuleDetails => { return { MatchPredicates : output . MatchPredicates !== undefined && output . MatchPredicates !== null ? deserializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicateList ( output . MatchPredicates , context ) : undefined , MetricName : __expectString ( output . MetricName ) , Name : __expectString ( output . Name ) , RateKey : __expectString ( output . RateKey ) , RateLimit : __expectLong ( output . RateLimit ) , RuleId : __expectString ( output . RuleId ) , } as any ; } ; const deserializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicate = ( output , context ) : AwsWafRegionalRateBasedRuleMatchPredicate => { return { DataId : __expectString ( output . DataId ) , Negated : __expectBoolean ( output . Negated ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicateList = ( output , context ) : AwsWafRegionalRateBasedRuleMatchPredicate [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsWafRegionalRateBasedRuleMatchPredicate ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsWafWebAclDetails = ( output , context ) : AwsWafWebAclDetails => { return { DefaultAction : __expectString ( output . DefaultAction ) , Name : __expectString ( output . Name ) , Rules : output . Rules !== undefined && output . Rules !== null ? deserializeAws_restJson1AwsWafWebAclRuleList ( output . Rules , context ) : undefined , WebAclId : __expectString ( output . WebAclId ) , } as any ; } ; const deserializeAws_restJson1AwsWafWebAclRule = ( output , context ) : AwsWafWebAclRule => { return { Action : output . Action !== undefined && output . Action !== null ? deserializeAws_restJson1WafAction ( output . Action , context ) : undefined , ExcludedRules : output . ExcludedRules !== undefined && output . ExcludedRules !== null ? deserializeAws_restJson1WafExcludedRuleList ( output . ExcludedRules , context ) : undefined , OverrideAction : output . OverrideAction !== undefined && output . OverrideAction !== null ? deserializeAws_restJson1WafOverrideAction ( output . OverrideAction , context ) : undefined , Priority : __expectInt32 ( output . Priority ) , RuleId : __expectString ( output . RuleId ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1AwsWafWebAclRuleList = ( output , context ) : AwsWafWebAclRule [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1AwsWafWebAclRule ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1AwsXrayEncryptionConfigDetails = ( output , context ) : AwsXrayEncryptionConfigDetails => { return { KeyId : __expectString ( output . KeyId ) , Status : __expectString ( output . Status ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1BatchUpdateFindingsUnprocessedFinding = ( output , context ) : BatchUpdateFindingsUnprocessedFinding => { return { ErrorCode : __expectString ( output . ErrorCode ) , ErrorMessage : __expectString ( output . ErrorMessage ) , FindingIdentifier : output . FindingIdentifier !== undefined && output . FindingIdentifier !== null ? deserializeAws_restJson1AwsSecurityFindingIdentifier ( output . FindingIdentifier , context ) : undefined , } as any ; } ; const deserializeAws_restJson1BatchUpdateFindingsUnprocessedFindingsList = ( output , context ) : BatchUpdateFindingsUnprocessedFinding [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1BatchUpdateFindingsUnprocessedFinding ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1CategoryList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Cell = ( output , context ) : Cell => { return { CellReference : __expectString ( output . CellReference ) , Column : __expectLong ( output . Column ) , ColumnName : __expectString ( output . ColumnName ) , Row : __expectLong ( output . Row ) , } as any ; } ; const deserializeAws_restJson1Cells = ( output , context ) : Cell [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Cell ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1CidrBlockAssociation = ( output , context ) : CidrBlockAssociation => { return { AssociationId : __expectString ( output . AssociationId ) , CidrBlock : __expectString ( output . CidrBlock ) , CidrBlockState : __expectString ( output . CidrBlockState ) , } as any ; } ; const deserializeAws_restJson1CidrBlockAssociationList = ( output , context ) : CidrBlockAssociation [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1CidrBlockAssociation ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1City = ( output , context ) : City => { return { CityName : __expectString ( output . CityName ) , } as any ; } ; const deserializeAws_restJson1ClassificationResult = ( output , context ) : ClassificationResult => { return { AdditionalOccurrences : __expectBoolean ( output . AdditionalOccurrences ) , CustomDataIdentifiers : output . CustomDataIdentifiers !== undefined && output . CustomDataIdentifiers !== null ? deserializeAws_restJson1CustomDataIdentifiersResult ( output . CustomDataIdentifiers , context ) : undefined , MimeType : __expectString ( output . MimeType ) , SensitiveData : output . SensitiveData !== undefined && output . SensitiveData !== null ? deserializeAws_restJson1SensitiveDataResultList ( output . SensitiveData , context ) : undefined , SizeClassified : __expectLong ( output . SizeClassified ) , Status : output . Status !== undefined && output . Status !== null ? deserializeAws_restJson1ClassificationStatus ( output . Status , context ) : undefined , } as any ; } ; const deserializeAws_restJson1ClassificationStatus = ( output , context ) : ClassificationStatus => { return { Code : __expectString ( output . Code ) , Reason : __expectString ( output . Reason ) , } as any ; } ; const deserializeAws_restJson1Compliance = ( output , context ) : Compliance => { return { RelatedRequirements : output . RelatedRequirements !== undefined && output . RelatedRequirements !== null ? deserializeAws_restJson1RelatedRequirementsList ( output . RelatedRequirements , context ) : undefined , Status : __expectString ( output . Status ) , StatusReasons : output . StatusReasons !== undefined && output . StatusReasons !== null ? deserializeAws_restJson1StatusReasonsList ( output . StatusReasons , context ) : undefined , } as any ; } ; const deserializeAws_restJson1ContainerDetails = ( output , context ) : ContainerDetails => { return { ImageId : __expectString ( output . ImageId ) , ImageName : __expectString ( output . ImageName ) , LaunchedAt : __expectString ( output . LaunchedAt ) , Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1Country = ( output , context ) : Country => { return { CountryCode : __expectString ( output . CountryCode ) , CountryName : __expectString ( output . CountryName ) , } as any ; } ; const deserializeAws_restJson1CustomDataIdentifiersDetections = ( output , context ) : CustomDataIdentifiersDetections => { return { Arn : __expectString ( output . Arn ) , Count : __expectLong ( output . Count ) , Name : __expectString ( output . Name ) , Occurrences : output . Occurrences !== undefined && output . Occurrences !== null ? deserializeAws_restJson1Occurrences ( output . Occurrences , context ) : undefined , } as any ; } ; const deserializeAws_restJson1CustomDataIdentifiersDetectionsList = ( output , context ) : CustomDataIdentifiersDetections [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1CustomDataIdentifiersDetections ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1CustomDataIdentifiersResult = ( output , context ) : CustomDataIdentifiersResult => { return { Detections : output . Detections !== undefined && output . Detections !== null ? deserializeAws_restJson1CustomDataIdentifiersDetectionsList ( output . Detections , context ) : undefined , TotalCount : __expectLong ( output . TotalCount ) , } as any ; } ; const deserializeAws_restJson1Cvss = ( output , context ) : Cvss => { return { Adjustments : output . Adjustments !== undefined && output . Adjustments !== null ? deserializeAws_restJson1AdjustmentList ( output . Adjustments , context ) : undefined , BaseScore : __limitedParseDouble ( output . BaseScore ) , BaseVector : __expectString ( output . BaseVector ) , Source : __expectString ( output . Source ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1CvssList = ( output , context ) : Cvss [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Cvss ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1DataClassificationDetails = ( output , context ) : DataClassificationDetails => { return { DetailedResultsLocation : __expectString ( output . DetailedResultsLocation ) , Result : output . Result !== undefined && output . Result !== null ? deserializeAws_restJson1ClassificationResult ( output . Result , context ) : undefined , } as any ; } ; const deserializeAws_restJson1DateFilter = ( output , context ) : DateFilter => { return { DateRange : output . DateRange !== undefined && output . DateRange !== null ? deserializeAws_restJson1DateRange ( output . DateRange , context ) : undefined , End : __expectString ( output . End ) , Start : __expectString ( output . Start ) , } as any ; } ; const deserializeAws_restJson1DateFilterList = ( output , context ) : DateFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1DateFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1DateRange = ( output , context ) : DateRange => { return { Unit : __expectString ( output . Unit ) , Value : __expectInt32 ( output . Value ) , } as any ; } ; const deserializeAws_restJson1DnsRequestAction = ( output , context ) : DnsRequestAction => { return { Blocked : __expectBoolean ( output . Blocked ) , Domain : __expectString ( output . Domain ) , Protocol : __expectString ( output . Protocol ) , } as any ; } ; const deserializeAws_restJson1FieldMap = ( output , context ) : { [ key ] : string ; } => { return Object . entries ( output ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : __expectString ( value ) as any , } ; } , { } ) ; } ; const deserializeAws_restJson1FindingAggregator = ( output , context ) : FindingAggregator => { return { FindingAggregatorArn : __expectString ( output . FindingAggregatorArn ) , } as any ; } ; const deserializeAws_restJson1FindingAggregatorList = ( output , context ) : FindingAggregator [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1FindingAggregator ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1FindingProviderFields = ( output , context ) : FindingProviderFields => { return { Confidence : __expectInt32 ( output . Confidence ) , Criticality : __expectInt32 ( output . Criticality ) , RelatedFindings : output . RelatedFindings !== undefined && output . RelatedFindings !== null ? deserializeAws_restJson1RelatedFindingList ( output . RelatedFindings , context ) : undefined , Severity : output . Severity !== undefined && output . Severity !== null ? deserializeAws_restJson1FindingProviderSeverity ( output . Severity , context ) : undefined , Types : output . Types !== undefined && output . Types !== null ? deserializeAws_restJson1TypeList ( output . Types , context ) : undefined , } as any ; } ; const deserializeAws_restJson1FindingProviderSeverity = ( output , context ) : FindingProviderSeverity => { return { Label : __expectString ( output . Label ) , Original : __expectString ( output . Original ) , } as any ; } ; const deserializeAws_restJson1FirewallPolicyDetails = ( output , context ) : FirewallPolicyDetails => { return { StatefulRuleGroupReferences : output . StatefulRuleGroupReferences !== undefined && output . StatefulRuleGroupReferences !== null ? deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList ( output . StatefulRuleGroupReferences , context ) : undefined , StatelessCustomActions : output . StatelessCustomActions !== undefined && output . StatelessCustomActions !== null ? deserializeAws_restJson1FirewallPolicyStatelessCustomActionsList ( output . StatelessCustomActions , context ) : undefined , StatelessDefaultActions : output . StatelessDefaultActions !== undefined && output . StatelessDefaultActions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . StatelessDefaultActions , context ) : undefined , StatelessFragmentDefaultActions : output . StatelessFragmentDefaultActions !== undefined && output . StatelessFragmentDefaultActions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . StatelessFragmentDefaultActions , context ) : undefined , StatelessRuleGroupReferences : output . StatelessRuleGroupReferences !== undefined && output . StatelessRuleGroupReferences !== null ? deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList ( output . StatelessRuleGroupReferences , context ) : undefined , } as any ; } ; const deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails = ( output , context ) : FirewallPolicyStatefulRuleGroupReferencesDetails => { return { ResourceArn : __expectString ( output . ResourceArn ) , } as any ; } ; const deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList = ( output , context ) : FirewallPolicyStatefulRuleGroupReferencesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails = ( output , context ) : FirewallPolicyStatelessCustomActionsDetails => { return { ActionDefinition : output . ActionDefinition !== undefined && output . ActionDefinition !== null ? deserializeAws_restJson1StatelessCustomActionDefinition ( output . ActionDefinition , context ) : undefined , ActionName : __expectString ( output . ActionName ) , } as any ; } ; const deserializeAws_restJson1FirewallPolicyStatelessCustomActionsList = ( output , context ) : FirewallPolicyStatelessCustomActionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails = ( output , context ) : FirewallPolicyStatelessRuleGroupReferencesDetails => { return { Priority : __expectInt32 ( output . Priority ) , ResourceArn : __expectString ( output . ResourceArn ) , } as any ; } ; const deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList = ( output , context ) : FirewallPolicyStatelessRuleGroupReferencesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1GeoLocation = ( output , context ) : GeoLocation => { return { Lat : __limitedParseDouble ( output . Lat ) , Lon : __limitedParseDouble ( output . Lon ) , } as any ; } ; const deserializeAws_restJson1IcmpTypeCode = ( output , context ) : IcmpTypeCode => { return { Code : __expectInt32 ( output . Code ) , Type : __expectInt32 ( output . Type ) , } as any ; } ; const deserializeAws_restJson1ImportFindingsError = ( output , context ) : ImportFindingsError => { return { ErrorCode : __expectString ( output . ErrorCode ) , ErrorMessage : __expectString ( output . ErrorMessage ) , Id : __expectString ( output . Id ) , } as any ; } ; const deserializeAws_restJson1ImportFindingsErrorList = ( output , context ) : ImportFindingsError [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1ImportFindingsError ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Insight = ( output , context ) : Insight => { return { Filters : output . Filters !== undefined && output . Filters !== null ? deserializeAws_restJson1AwsSecurityFindingFilters ( output . Filters , context ) : undefined , GroupByAttribute : __expectString ( output . GroupByAttribute ) , InsightArn : __expectString ( output . InsightArn ) , Name : __expectString ( output . Name ) , } as any ; } ; const deserializeAws_restJson1InsightList = ( output , context ) : Insight [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Insight ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1InsightResults = ( output , context ) : InsightResults => { return { GroupByAttribute : __expectString ( output . GroupByAttribute ) , InsightArn : __expectString ( output . InsightArn ) , ResultValues : output . ResultValues !== undefined && output . ResultValues !== null ? deserializeAws_restJson1InsightResultValueList ( output . ResultValues , context ) : undefined , } as any ; } ; const deserializeAws_restJson1InsightResultValue = ( output , context ) : InsightResultValue => { return { Count : __expectInt32 ( output . Count ) , GroupByAttributeValue : __expectString ( output . GroupByAttributeValue ) , } as any ; } ; const deserializeAws_restJson1InsightResultValueList = ( output , context ) : InsightResultValue [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1InsightResultValue ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1IntegerList = ( output , context ) : number [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectInt32 ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1IntegrationTypeList = ( output , context ) : ( IntegrationType | string ) [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Invitation = ( output , context ) : Invitation => { return { AccountId : __expectString ( output . AccountId ) , InvitationId : __expectString ( output . InvitationId ) , InvitedAt : output . InvitedAt !== undefined && output . InvitedAt !== null ? __expectNonNull ( __parseRfc3339DateTime ( output . InvitedAt ) ) : undefined , MemberStatus : __expectString ( output . MemberStatus ) , } as any ; } ; const deserializeAws_restJson1InvitationList = ( output , context ) : Invitation [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Invitation ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1IpFilter = ( output , context ) : IpFilter => { return { Cidr : __expectString ( output . Cidr ) , } as any ; } ; const deserializeAws_restJson1IpFilterList = ( output , context ) : IpFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1IpFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1IpOrganizationDetails = ( output , context ) : IpOrganizationDetails => { return { Asn : __expectInt32 ( output . Asn ) , AsnOrg : __expectString ( output . AsnOrg ) , Isp : __expectString ( output . Isp ) , Org : __expectString ( output . Org ) , } as any ; } ; const deserializeAws_restJson1Ipv6CidrBlockAssociation = ( output , context ) : Ipv6CidrBlockAssociation => { return { AssociationId : __expectString ( output . AssociationId ) , CidrBlockState : __expectString ( output . CidrBlockState ) , Ipv6CidrBlock : __expectString ( output . Ipv6CidrBlock ) , } as any ; } ; const deserializeAws_restJson1Ipv6CidrBlockAssociationList = ( output , context ) : Ipv6CidrBlockAssociation [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Ipv6CidrBlockAssociation ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1KeywordFilter = ( output , context ) : KeywordFilter => { return { Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1KeywordFilterList = ( output , context ) : KeywordFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1KeywordFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1LoadBalancerState = ( output , context ) : LoadBalancerState => { return { Code : __expectString ( output . Code ) , Reason : __expectString ( output . Reason ) , } as any ; } ; const deserializeAws_restJson1Malware = ( output , context ) : Malware => { return { Name : __expectString ( output . Name ) , Path : __expectString ( output . Path ) , State : __expectString ( output . State ) , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1MalwareList = ( output , context ) : Malware [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Malware ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1MapFilter = ( output , context ) : MapFilter => { return { Comparison : __expectString ( output . Comparison ) , Key : __expectString ( output . Key ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1MapFilterList = ( output , context ) : MapFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1MapFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Member = ( output , context ) : Member => { return { AccountId : __expectString ( output . AccountId ) , AdministratorId : __expectString ( output . AdministratorId ) , Email : __expectString ( output . Email ) , InvitedAt : output . InvitedAt !== undefined && output . InvitedAt !== null ? __expectNonNull ( __parseRfc3339DateTime ( output . InvitedAt ) ) : undefined , MasterId : __expectString ( output . MasterId ) , MemberStatus : __expectString ( output . MemberStatus ) , UpdatedAt : output . UpdatedAt !== undefined && output . UpdatedAt !== null ? __expectNonNull ( __parseRfc3339DateTime ( output . UpdatedAt ) ) : undefined , } as any ; } ; const deserializeAws_restJson1MemberList = ( output , context ) : Member [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Member ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Network = ( output , context ) : Network => { return { DestinationDomain : __expectString ( output . DestinationDomain ) , DestinationIpV4 : __expectString ( output . DestinationIpV4 ) , DestinationIpV6 : __expectString ( output . DestinationIpV6 ) , DestinationPort : __expectInt32 ( output . DestinationPort ) , Direction : __expectString ( output . Direction ) , OpenPortRange : output . OpenPortRange !== undefined && output . OpenPortRange !== null ? deserializeAws_restJson1PortRange ( output . OpenPortRange , context ) : undefined , Protocol : __expectString ( output . Protocol ) , SourceDomain : __expectString ( output . SourceDomain ) , SourceIpV4 : __expectString ( output . SourceIpV4 ) , SourceIpV6 : __expectString ( output . SourceIpV6 ) , SourceMac : __expectString ( output . SourceMac ) , SourcePort : __expectInt32 ( output . SourcePort ) , } as any ; } ; const deserializeAws_restJson1NetworkConnectionAction = ( output , context ) : NetworkConnectionAction => { return { Blocked : __expectBoolean ( output . Blocked ) , ConnectionDirection : __expectString ( output . ConnectionDirection ) , LocalPortDetails : output . LocalPortDetails !== undefined && output . LocalPortDetails !== null ? deserializeAws_restJson1ActionLocalPortDetails ( output . LocalPortDetails , context ) : undefined , Protocol : __expectString ( output . Protocol ) , RemoteIpDetails : output . RemoteIpDetails !== undefined && output . RemoteIpDetails !== null ? deserializeAws_restJson1ActionRemoteIpDetails ( output . RemoteIpDetails , context ) : undefined , RemotePortDetails : output . RemotePortDetails !== undefined && output . RemotePortDetails !== null ? deserializeAws_restJson1ActionRemotePortDetails ( output . RemotePortDetails , context ) : undefined , } as any ; } ; const deserializeAws_restJson1NetworkHeader = ( output , context ) : NetworkHeader => { return { Destination : output . Destination !== undefined && output . Destination !== null ? deserializeAws_restJson1NetworkPathComponentDetails ( output . Destination , context ) : undefined , Protocol : __expectString ( output . Protocol ) , Source : output . Source !== undefined && output . Source !== null ? deserializeAws_restJson1NetworkPathComponentDetails ( output . Source , context ) : undefined , } as any ; } ; const deserializeAws_restJson1NetworkPathComponent = ( output , context ) : NetworkPathComponent => { return { ComponentId : __expectString ( output . ComponentId ) , ComponentType : __expectString ( output . ComponentType ) , Egress : output . Egress !== undefined && output . Egress !== null ? deserializeAws_restJson1NetworkHeader ( output . Egress , context ) : undefined , Ingress : output . Ingress !== undefined && output . Ingress !== null ? deserializeAws_restJson1NetworkHeader ( output . Ingress , context ) : undefined , } as any ; } ; const deserializeAws_restJson1NetworkPathComponentDetails = ( output , context ) : NetworkPathComponentDetails => { return { Address : output . Address !== undefined && output . Address !== null ? deserializeAws_restJson1StringList ( output . Address , context ) : undefined , PortRanges : output . PortRanges !== undefined && output . PortRanges !== null ? deserializeAws_restJson1PortRangeList ( output . PortRanges , context ) : undefined , } as any ; } ; const deserializeAws_restJson1NetworkPathList = ( output , context ) : NetworkPathComponent [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1NetworkPathComponent ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1NonEmptyStringList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Note = ( output , context ) : Note => { return { Text : __expectString ( output . Text ) , UpdatedAt : __expectString ( output . UpdatedAt ) , UpdatedBy : __expectString ( output . UpdatedBy ) , } as any ; } ; const deserializeAws_restJson1NumberFilter = ( output , context ) : NumberFilter => { return { Eq : __limitedParseDouble ( output . Eq ) , Gte : __limitedParseDouble ( output . Gte ) , Lte : __limitedParseDouble ( output . Lte ) , } as any ; } ; const deserializeAws_restJson1NumberFilterList = ( output , context ) : NumberFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1NumberFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Occurrences = ( output , context ) : Occurrences => { return { Cells : output . Cells !== undefined && output . Cells !== null ? deserializeAws_restJson1Cells ( output . Cells , context ) : undefined , LineRanges : output . LineRanges !== undefined && output . LineRanges !== null ? deserializeAws_restJson1Ranges ( output . LineRanges , context ) : undefined , OffsetRanges : output . OffsetRanges !== undefined && output . OffsetRanges !== null ? deserializeAws_restJson1Ranges ( output . OffsetRanges , context ) : undefined , Pages : output . Pages !== undefined && output . Pages !== null ? deserializeAws_restJson1Pages ( output . Pages , context ) : undefined , Records : output . Records !== undefined && output . Records !== null ? deserializeAws_restJson1Records ( output . Records , context ) : undefined , } as any ; } ; const deserializeAws_restJson1Page = ( output , context ) : Page => { return { LineRange : output . LineRange !== undefined && output . LineRange !== null ? deserializeAws_restJson1Range ( output . LineRange , context ) : undefined , OffsetRange : output . OffsetRange !== undefined && output . OffsetRange !== null ? deserializeAws_restJson1Range ( output . OffsetRange , context ) : undefined , PageNumber : __expectLong ( output . PageNumber ) , } as any ; } ; const deserializeAws_restJson1Pages = ( output , context ) : Page [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Page ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1PatchSummary = ( output , context ) : PatchSummary => { return { FailedCount : __expectInt32 ( output . FailedCount ) , Id : __expectString ( output . Id ) , InstalledCount : __expectInt32 ( output . InstalledCount ) , InstalledOtherCount : __expectInt32 ( output . InstalledOtherCount ) , InstalledPendingReboot : __expectInt32 ( output . InstalledPendingReboot ) , InstalledRejectedCount : __expectInt32 ( output . InstalledRejectedCount ) , MissingCount : __expectInt32 ( output . MissingCount ) , Operation : __expectString ( output . Operation ) , OperationEndTime : __expectString ( output . OperationEndTime ) , OperationStartTime : __expectString ( output . OperationStartTime ) , RebootOption : __expectString ( output . RebootOption ) , } as any ; } ; const deserializeAws_restJson1PortProbeAction = ( output , context ) : PortProbeAction => { return { Blocked : __expectBoolean ( output . Blocked ) , PortProbeDetails : output . PortProbeDetails !== undefined && output . PortProbeDetails !== null ? deserializeAws_restJson1PortProbeDetailList ( output . PortProbeDetails , context ) : undefined , } as any ; } ; const deserializeAws_restJson1PortProbeDetail = ( output , context ) : PortProbeDetail => { return { LocalIpDetails : output . LocalIpDetails !== undefined && output . LocalIpDetails !== null ? deserializeAws_restJson1ActionLocalIpDetails ( output . LocalIpDetails , context ) : undefined , LocalPortDetails : output . LocalPortDetails !== undefined && output . LocalPortDetails !== null ? deserializeAws_restJson1ActionLocalPortDetails ( output . LocalPortDetails , context ) : undefined , RemoteIpDetails : output . RemoteIpDetails !== undefined && output . RemoteIpDetails !== null ? deserializeAws_restJson1ActionRemoteIpDetails ( output . RemoteIpDetails , context ) : undefined , } as any ; } ; const deserializeAws_restJson1PortProbeDetailList = ( output , context ) : PortProbeDetail [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1PortProbeDetail ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1PortRange = ( output , context ) : PortRange => { return { Begin : __expectInt32 ( output . Begin ) , End : __expectInt32 ( output . End ) , } as any ; } ; const deserializeAws_restJson1PortRangeFromTo = ( output , context ) : PortRangeFromTo => { return { From : __expectInt32 ( output . From ) , To : __expectInt32 ( output . To ) , } as any ; } ; const deserializeAws_restJson1PortRangeList = ( output , context ) : PortRange [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1PortRange ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1ProcessDetails = ( output , context ) : ProcessDetails => { return { LaunchedAt : __expectString ( output . LaunchedAt ) , Name : __expectString ( output . Name ) , ParentPid : __expectInt32 ( output . ParentPid ) , Path : __expectString ( output . Path ) , Pid : __expectInt32 ( output . Pid ) , TerminatedAt : __expectString ( output . TerminatedAt ) , } as any ; } ; const deserializeAws_restJson1Product = ( output , context ) : Product => { return { ActivationUrl : __expectString ( output . ActivationUrl ) , Categories : output . Categories !== undefined && output . Categories !== null ? deserializeAws_restJson1CategoryList ( output . Categories , context ) : undefined , CompanyName : __expectString ( output . CompanyName ) , Description : __expectString ( output . Description ) , IntegrationTypes : output . IntegrationTypes !== undefined && output . IntegrationTypes !== null ? deserializeAws_restJson1IntegrationTypeList ( output . IntegrationTypes , context ) : undefined , MarketplaceUrl : __expectString ( output . MarketplaceUrl ) , ProductArn : __expectString ( output . ProductArn ) , ProductName : __expectString ( output . ProductName ) , ProductSubscriptionResourcePolicy : __expectString ( output . ProductSubscriptionResourcePolicy ) , } as any ; } ; const deserializeAws_restJson1ProductsList = ( output , context ) : Product [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Product ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1ProductSubscriptionArnList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Range = ( output , context ) : Range => { return { End : __expectLong ( output . End ) , Start : __expectLong ( output . Start ) , StartColumn : __expectLong ( output . StartColumn ) , } as any ; } ; const deserializeAws_restJson1Ranges = ( output , context ) : Range [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Range ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Recommendation = ( output , context ) : Recommendation => { return { Text : __expectString ( output . Text ) , Url : __expectString ( output . Url ) , } as any ; } ; const deserializeAws_restJson1_Record = ( output , context ) : _Record => { return { JsonPath : __expectString ( output . JsonPath ) , RecordIndex : __expectLong ( output . RecordIndex ) , } as any ; } ; const deserializeAws_restJson1Records = ( output , context ) : _Record [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1_Record ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RelatedFinding = ( output , context ) : RelatedFinding => { return { Id : __expectString ( output . Id ) , ProductArn : __expectString ( output . ProductArn ) , } as any ; } ; const deserializeAws_restJson1RelatedFindingList = ( output , context ) : RelatedFinding [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RelatedFinding ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RelatedRequirementsList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Remediation = ( output , context ) : Remediation => { return { Recommendation : output . Recommendation !== undefined && output . Recommendation !== null ? deserializeAws_restJson1Recommendation ( output . Recommendation , context ) : undefined , } as any ; } ; const deserializeAws_restJson1Resource = ( output , context ) : Resource => { return { DataClassification : output . DataClassification !== undefined && output . DataClassification !== null ? deserializeAws_restJson1DataClassificationDetails ( output . DataClassification , context ) : undefined , Details : output . Details !== undefined && output . Details !== null ? deserializeAws_restJson1ResourceDetails ( output . Details , context ) : undefined , Id : __expectString ( output . Id ) , Partition : __expectString ( output . Partition ) , Region : __expectString ( output . Region ) , ResourceRole : __expectString ( output . ResourceRole ) , Tags : output . Tags !== undefined && output . Tags !== null ? deserializeAws_restJson1FieldMap ( output . Tags , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1ResourceDetails = ( output , context ) : ResourceDetails => { return { AwsApiGatewayRestApi : output . AwsApiGatewayRestApi !== undefined && output . AwsApiGatewayRestApi !== null ? deserializeAws_restJson1AwsApiGatewayRestApiDetails ( output . AwsApiGatewayRestApi , context ) : undefined , AwsApiGatewayStage : output . AwsApiGatewayStage !== undefined && output . AwsApiGatewayStage !== null ? deserializeAws_restJson1AwsApiGatewayStageDetails ( output . AwsApiGatewayStage , context ) : undefined , AwsApiGatewayV2Api : output . AwsApiGatewayV2Api !== undefined && output . AwsApiGatewayV2Api !== null ? deserializeAws_restJson1AwsApiGatewayV2ApiDetails ( output . AwsApiGatewayV2Api , context ) : undefined , AwsApiGatewayV2Stage : output . AwsApiGatewayV2Stage !== undefined && output . AwsApiGatewayV2Stage !== null ? deserializeAws_restJson1AwsApiGatewayV2StageDetails ( output . AwsApiGatewayV2Stage , context ) : undefined , AwsAutoScalingAutoScalingGroup : output . AwsAutoScalingAutoScalingGroup !== undefined && output . AwsAutoScalingAutoScalingGroup !== null ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails ( output . AwsAutoScalingAutoScalingGroup , context ) : undefined , AwsAutoScalingLaunchConfiguration : output . AwsAutoScalingLaunchConfiguration !== undefined && output . AwsAutoScalingLaunchConfiguration !== null ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails ( output . AwsAutoScalingLaunchConfiguration , context ) : undefined , AwsCertificateManagerCertificate : output . AwsCertificateManagerCertificate !== undefined && output . AwsCertificateManagerCertificate !== null ? deserializeAws_restJson1AwsCertificateManagerCertificateDetails ( output . AwsCertificateManagerCertificate , context ) : undefined , AwsCloudFrontDistribution : output . AwsCloudFrontDistribution !== undefined && output . AwsCloudFrontDistribution !== null ? deserializeAws_restJson1AwsCloudFrontDistributionDetails ( output . AwsCloudFrontDistribution , context ) : undefined , AwsCloudTrailTrail : output . AwsCloudTrailTrail !== undefined && output . AwsCloudTrailTrail !== null ? deserializeAws_restJson1AwsCloudTrailTrailDetails ( output . AwsCloudTrailTrail , context ) : undefined , AwsCodeBuildProject : output . AwsCodeBuildProject !== undefined && output . AwsCodeBuildProject !== null ? deserializeAws_restJson1AwsCodeBuildProjectDetails ( output . AwsCodeBuildProject , context ) : undefined , AwsDynamoDbTable : output . AwsDynamoDbTable !== undefined && output . AwsDynamoDbTable !== null ? deserializeAws_restJson1AwsDynamoDbTableDetails ( output . AwsDynamoDbTable , context ) : undefined , AwsEc2Eip : output . AwsEc2Eip !== undefined && output . AwsEc2Eip !== null ? deserializeAws_restJson1AwsEc2EipDetails ( output . AwsEc2Eip , context ) : undefined , AwsEc2Instance : output . AwsEc2Instance !== undefined && output . AwsEc2Instance !== null ? deserializeAws_restJson1AwsEc2InstanceDetails ( output . AwsEc2Instance , context ) : undefined , AwsEc2NetworkAcl : output . AwsEc2NetworkAcl !== undefined && output . AwsEc2NetworkAcl !== null ? deserializeAws_restJson1AwsEc2NetworkAclDetails ( output . AwsEc2NetworkAcl , context ) : undefined , AwsEc2NetworkInterface : output . AwsEc2NetworkInterface !== undefined && output . AwsEc2NetworkInterface !== null ? deserializeAws_restJson1AwsEc2NetworkInterfaceDetails ( output . AwsEc2NetworkInterface , context ) : undefined , AwsEc2SecurityGroup : output . AwsEc2SecurityGroup !== undefined && output . AwsEc2SecurityGroup !== null ? deserializeAws_restJson1AwsEc2SecurityGroupDetails ( output . AwsEc2SecurityGroup , context ) : undefined , AwsEc2Subnet : output . AwsEc2Subnet !== undefined && output . AwsEc2Subnet !== null ? deserializeAws_restJson1AwsEc2SubnetDetails ( output . AwsEc2Subnet , context ) : undefined , AwsEc2Volume : output . AwsEc2Volume !== undefined && output . AwsEc2Volume !== null ? deserializeAws_restJson1AwsEc2VolumeDetails ( output . AwsEc2Volume , context ) : undefined , AwsEc2Vpc : output . AwsEc2Vpc !== undefined && output . AwsEc2Vpc !== null ? deserializeAws_restJson1AwsEc2VpcDetails ( output . AwsEc2Vpc , context ) : undefined , AwsEc2VpcEndpointService : output . AwsEc2VpcEndpointService !== undefined && output . AwsEc2VpcEndpointService !== null ? deserializeAws_restJson1AwsEc2VpcEndpointServiceDetails ( output . AwsEc2VpcEndpointService , context ) : undefined , AwsEc2VpnConnection : output . AwsEc2VpnConnection !== undefined && output . AwsEc2VpnConnection !== null ? deserializeAws_restJson1AwsEc2VpnConnectionDetails ( output . AwsEc2VpnConnection , context ) : undefined , AwsEcrContainerImage : output . AwsEcrContainerImage !== undefined && output . AwsEcrContainerImage !== null ? deserializeAws_restJson1AwsEcrContainerImageDetails ( output . AwsEcrContainerImage , context ) : undefined , AwsEcrRepository : output . AwsEcrRepository !== undefined && output . AwsEcrRepository !== null ? deserializeAws_restJson1AwsEcrRepositoryDetails ( output . AwsEcrRepository , context ) : undefined , AwsEcsCluster : output . AwsEcsCluster !== undefined && output . AwsEcsCluster !== null ? deserializeAws_restJson1AwsEcsClusterDetails ( output . AwsEcsCluster , context ) : undefined , AwsEcsService : output . AwsEcsService !== undefined && output . AwsEcsService !== null ? deserializeAws_restJson1AwsEcsServiceDetails ( output . AwsEcsService , context ) : undefined , AwsEcsTaskDefinition : output . AwsEcsTaskDefinition !== undefined && output . AwsEcsTaskDefinition !== null ? deserializeAws_restJson1AwsEcsTaskDefinitionDetails ( output . AwsEcsTaskDefinition , context ) : undefined , AwsEksCluster : output . AwsEksCluster !== undefined && output . AwsEksCluster !== null ? deserializeAws_restJson1AwsEksClusterDetails ( output . AwsEksCluster , context ) : undefined , AwsElasticBeanstalkEnvironment : output . AwsElasticBeanstalkEnvironment !== undefined && output . AwsElasticBeanstalkEnvironment !== null ? deserializeAws_restJson1AwsElasticBeanstalkEnvironmentDetails ( output . AwsElasticBeanstalkEnvironment , context ) : undefined , AwsElasticsearchDomain : output . AwsElasticsearchDomain !== undefined && output . AwsElasticsearchDomain !== null ? deserializeAws_restJson1AwsElasticsearchDomainDetails ( output . AwsElasticsearchDomain , context ) : undefined , AwsElbLoadBalancer : output . AwsElbLoadBalancer !== undefined && output . AwsElbLoadBalancer !== null ? deserializeAws_restJson1AwsElbLoadBalancerDetails ( output . AwsElbLoadBalancer , context ) : undefined , AwsElbv2LoadBalancer : output . AwsElbv2LoadBalancer !== undefined && output . AwsElbv2LoadBalancer !== null ? deserializeAws_restJson1AwsElbv2LoadBalancerDetails ( output . AwsElbv2LoadBalancer , context ) : undefined , AwsIamAccessKey : output . AwsIamAccessKey !== undefined && output . AwsIamAccessKey !== null ? deserializeAws_restJson1AwsIamAccessKeyDetails ( output . AwsIamAccessKey , context ) : undefined , AwsIamGroup : output . AwsIamGroup !== undefined && output . AwsIamGroup !== null ? deserializeAws_restJson1AwsIamGroupDetails ( output . AwsIamGroup , context ) : undefined , AwsIamPolicy : output . AwsIamPolicy !== undefined && output . AwsIamPolicy !== null ? deserializeAws_restJson1AwsIamPolicyDetails ( output . AwsIamPolicy , context ) : undefined , AwsIamRole : output . AwsIamRole !== undefined && output . AwsIamRole !== null ? deserializeAws_restJson1AwsIamRoleDetails ( output . AwsIamRole , context ) : undefined , AwsIamUser : output . AwsIamUser !== undefined && output . AwsIamUser !== null ? deserializeAws_restJson1AwsIamUserDetails ( output . AwsIamUser , context ) : undefined , AwsKmsKey : output . AwsKmsKey !== undefined && output . AwsKmsKey !== null ? deserializeAws_restJson1AwsKmsKeyDetails ( output . AwsKmsKey , context ) : undefined , AwsLambdaFunction : output . AwsLambdaFunction !== undefined && output . AwsLambdaFunction !== null ? deserializeAws_restJson1AwsLambdaFunctionDetails ( output . AwsLambdaFunction , context ) : undefined , AwsLambdaLayerVersion : output . AwsLambdaLayerVersion !== undefined && output . AwsLambdaLayerVersion !== null ? deserializeAws_restJson1AwsLambdaLayerVersionDetails ( output . AwsLambdaLayerVersion , context ) : undefined , AwsNetworkFirewallFirewall : output . AwsNetworkFirewallFirewall !== undefined && output . AwsNetworkFirewallFirewall !== null ? deserializeAws_restJson1AwsNetworkFirewallFirewallDetails ( output . AwsNetworkFirewallFirewall , context ) : undefined , AwsNetworkFirewallFirewallPolicy : output . AwsNetworkFirewallFirewallPolicy !== undefined && output . AwsNetworkFirewallFirewallPolicy !== null ? deserializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails ( output . AwsNetworkFirewallFirewallPolicy , context ) : undefined , AwsNetworkFirewallRuleGroup : output . AwsNetworkFirewallRuleGroup !== undefined && output . AwsNetworkFirewallRuleGroup !== null ? deserializeAws_restJson1AwsNetworkFirewallRuleGroupDetails ( output . AwsNetworkFirewallRuleGroup , context ) : undefined , AwsOpenSearchServiceDomain : output . AwsOpenSearchServiceDomain !== undefined && output . AwsOpenSearchServiceDomain !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainDetails ( output . AwsOpenSearchServiceDomain , context ) : undefined , AwsRdsDbCluster : output . AwsRdsDbCluster !== undefined && output . AwsRdsDbCluster !== null ? deserializeAws_restJson1AwsRdsDbClusterDetails ( output . AwsRdsDbCluster , context ) : undefined , AwsRdsDbClusterSnapshot : output . AwsRdsDbClusterSnapshot !== undefined && output . AwsRdsDbClusterSnapshot !== null ? deserializeAws_restJson1AwsRdsDbClusterSnapshotDetails ( output . AwsRdsDbClusterSnapshot , context ) : undefined , AwsRdsDbInstance : output . AwsRdsDbInstance !== undefined && output . AwsRdsDbInstance !== null ? deserializeAws_restJson1AwsRdsDbInstanceDetails ( output . AwsRdsDbInstance , context ) : undefined , AwsRdsDbSnapshot : output . AwsRdsDbSnapshot !== undefined && output . AwsRdsDbSnapshot !== null ? deserializeAws_restJson1AwsRdsDbSnapshotDetails ( output . AwsRdsDbSnapshot , context ) : undefined , AwsRdsEventSubscription : output . AwsRdsEventSubscription !== undefined && output . AwsRdsEventSubscription !== null ? deserializeAws_restJson1AwsRdsEventSubscriptionDetails ( output . AwsRdsEventSubscription , context ) : undefined , AwsRedshiftCluster : output . AwsRedshiftCluster !== undefined && output . AwsRedshiftCluster !== null ? deserializeAws_restJson1AwsRedshiftClusterDetails ( output . AwsRedshiftCluster , context ) : undefined , AwsS3AccountPublicAccessBlock : output . AwsS3AccountPublicAccessBlock !== undefined && output . AwsS3AccountPublicAccessBlock !== null ? deserializeAws_restJson1AwsS3AccountPublicAccessBlockDetails ( output . AwsS3AccountPublicAccessBlock , context ) : undefined , AwsS3Bucket : output . AwsS3Bucket !== undefined && output . AwsS3Bucket !== null ? deserializeAws_restJson1AwsS3BucketDetails ( output . AwsS3Bucket , context ) : undefined , AwsS3Object : output . AwsS3Object !== undefined && output . AwsS3Object !== null ? deserializeAws_restJson1AwsS3ObjectDetails ( output . AwsS3Object , context ) : undefined , AwsSecretsManagerSecret : output . AwsSecretsManagerSecret !== undefined && output . AwsSecretsManagerSecret !== null ? deserializeAws_restJson1AwsSecretsManagerSecretDetails ( output . AwsSecretsManagerSecret , context ) : undefined , AwsSnsTopic : output . AwsSnsTopic !== undefined && output . AwsSnsTopic !== null ? deserializeAws_restJson1AwsSnsTopicDetails ( output . AwsSnsTopic , context ) : undefined , AwsSqsQueue : output . AwsSqsQueue !== undefined && output . AwsSqsQueue !== null ? deserializeAws_restJson1AwsSqsQueueDetails ( output . AwsSqsQueue , context ) : undefined , AwsSsmPatchCompliance : output . AwsSsmPatchCompliance !== undefined && output . AwsSsmPatchCompliance !== null ? deserializeAws_restJson1AwsSsmPatchComplianceDetails ( output . AwsSsmPatchCompliance , context ) : undefined , AwsWafRateBasedRule : output . AwsWafRateBasedRule !== undefined && output . AwsWafRateBasedRule !== null ? deserializeAws_restJson1AwsWafRateBasedRuleDetails ( output . AwsWafRateBasedRule , context ) : undefined , AwsWafRegionalRateBasedRule : output . AwsWafRegionalRateBasedRule !== undefined && output . AwsWafRegionalRateBasedRule !== null ? deserializeAws_restJson1AwsWafRegionalRateBasedRuleDetails ( output . AwsWafRegionalRateBasedRule , context ) : undefined , AwsWafWebAcl : output . AwsWafWebAcl !== undefined && output . AwsWafWebAcl !== null ? deserializeAws_restJson1AwsWafWebAclDetails ( output . AwsWafWebAcl , context ) : undefined , AwsXrayEncryptionConfig : output . AwsXrayEncryptionConfig !== undefined && output . AwsXrayEncryptionConfig !== null ? deserializeAws_restJson1AwsXrayEncryptionConfigDetails ( output . AwsXrayEncryptionConfig , context ) : undefined , Container : output . Container !== undefined && output . Container !== null ? deserializeAws_restJson1ContainerDetails ( output . Container , context ) : undefined , Other : output . Other !== undefined && output . Other !== null ? deserializeAws_restJson1FieldMap ( output . Other , context ) : undefined , } as any ; } ; const deserializeAws_restJson1ResourceList = ( output , context ) : Resource [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Resource ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Result = ( output , context ) : Result => { return { AccountId : __expectString ( output . AccountId ) , ProcessingResult : __expectString ( output . ProcessingResult ) , } as any ; } ; const deserializeAws_restJson1ResultList = ( output , context ) : Result [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Result ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupDetails = ( output , context ) : RuleGroupDetails => { return { RuleVariables : output . RuleVariables !== undefined && output . RuleVariables !== null ? deserializeAws_restJson1RuleGroupVariables ( output . RuleVariables , context ) : undefined , RulesSource : output . RulesSource !== undefined && output . RulesSource !== null ? deserializeAws_restJson1RuleGroupSource ( output . RulesSource , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSource = ( output , context ) : RuleGroupSource => { return { RulesSourceList : output . RulesSourceList !== undefined && output . RulesSourceList !== null ? deserializeAws_restJson1RuleGroupSourceListDetails ( output . RulesSourceList , context ) : undefined , RulesString : __expectString ( output . RulesString ) , StatefulRules : output . StatefulRules !== undefined && output . StatefulRules !== null ? deserializeAws_restJson1RuleGroupSourceStatefulRulesList ( output . StatefulRules , context ) : undefined , StatelessRulesAndCustomActions : output . StatelessRulesAndCustomActions !== undefined && output . StatelessRulesAndCustomActions !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails ( output . StatelessRulesAndCustomActions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceCustomActionsDetails = ( output , context ) : RuleGroupSourceCustomActionsDetails => { return { ActionDefinition : output . ActionDefinition !== undefined && output . ActionDefinition !== null ? deserializeAws_restJson1StatelessCustomActionDefinition ( output . ActionDefinition , context ) : undefined , ActionName : __expectString ( output . ActionName ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceCustomActionsList = ( output , context ) : RuleGroupSourceCustomActionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceCustomActionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceListDetails = ( output , context ) : RuleGroupSourceListDetails => { return { GeneratedRulesType : __expectString ( output . GeneratedRulesType ) , TargetTypes : output . TargetTypes !== undefined && output . TargetTypes !== null ? deserializeAws_restJson1NonEmptyStringList ( output . TargetTypes , context ) : undefined , Targets : output . Targets !== undefined && output . Targets !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Targets , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesDetails = ( output , context ) : RuleGroupSourceStatefulRulesDetails => { return { Action : __expectString ( output . Action ) , Header : output . Header !== undefined && output . Header !== null ? deserializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails ( output . Header , context ) : undefined , RuleOptions : output . RuleOptions !== undefined && output . RuleOptions !== null ? deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList ( output . RuleOptions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails = ( output , context ) : RuleGroupSourceStatefulRulesHeaderDetails => { return { Destination : __expectString ( output . Destination ) , DestinationPort : __expectString ( output . DestinationPort ) , Direction : __expectString ( output . Direction ) , Protocol : __expectString ( output . Protocol ) , Source : __expectString ( output . Source ) , SourcePort : __expectString ( output . SourcePort ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesList = ( output , context ) : RuleGroupSourceStatefulRulesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatefulRulesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails = ( output , context ) : RuleGroupSourceStatefulRulesOptionsDetails => { return { Keyword : __expectString ( output . Keyword ) , Settings : output . Settings !== undefined && output . Settings !== null ? deserializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList ( output . Settings , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList = ( output , context ) : RuleGroupSourceStatefulRulesOptionsDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleDefinition = ( output , context ) : RuleGroupSourceStatelessRuleDefinition => { return { Actions : output . Actions !== undefined && output . Actions !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Actions , context ) : undefined , MatchAttributes : output . MatchAttributes !== undefined && output . MatchAttributes !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes ( output . MatchAttributes , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributes => { return { DestinationPorts : output . DestinationPorts !== undefined && output . DestinationPorts !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList ( output . DestinationPorts , context ) : undefined , Destinations : output . Destinations !== undefined && output . Destinations !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList ( output . Destinations , context ) : undefined , Protocols : output . Protocols !== undefined && output . Protocols !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList ( output . Protocols , context ) : undefined , SourcePorts : output . SourcePorts !== undefined && output . SourcePorts !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList ( output . SourcePorts , context ) : undefined , Sources : output . Sources !== undefined && output . Sources !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList ( output . Sources , context ) : undefined , TcpFlags : output . TcpFlags !== undefined && output . TcpFlags !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList ( output . TcpFlags , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts => { return { FromPort : __expectInt32 ( output . FromPort ) , ToPort : __expectInt32 ( output . ToPort ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesDestinations => { return { AddressDefinition : __expectString ( output . AddressDefinition ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesDestinations [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList = ( output , context ) : number [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectInt32 ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesSourcePorts => { return { FromPort : __expectInt32 ( output . FromPort ) , ToPort : __expectInt32 ( output . ToPort ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesSourcePorts [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesSources => { return { AddressDefinition : __expectString ( output . AddressDefinition ) , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesSources [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesTcpFlags => { return { Flags : output . Flags !== undefined && output . Flags !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Flags , context ) : undefined , Masks : output . Masks !== undefined && output . Masks !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Masks , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList = ( output , context ) : RuleGroupSourceStatelessRuleMatchAttributesTcpFlags [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails = ( output , context ) : RuleGroupSourceStatelessRulesAndCustomActionsDetails => { return { CustomActions : output . CustomActions !== undefined && output . CustomActions !== null ? deserializeAws_restJson1RuleGroupSourceCustomActionsList ( output . CustomActions , context ) : undefined , StatelessRules : output . StatelessRules !== undefined && output . StatelessRules !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRulesList ( output . StatelessRules , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRulesDetails = ( output , context ) : RuleGroupSourceStatelessRulesDetails => { return { Priority : __expectInt32 ( output . Priority ) , RuleDefinition : output . RuleDefinition !== undefined && output . RuleDefinition !== null ? deserializeAws_restJson1RuleGroupSourceStatelessRuleDefinition ( output . RuleDefinition , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupSourceStatelessRulesList = ( output , context ) : RuleGroupSourceStatelessRulesDetails [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1RuleGroupSourceStatelessRulesDetails ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1RuleGroupVariables = ( output , context ) : RuleGroupVariables => { return { IpSets : output . IpSets !== undefined && output . IpSets !== null ? deserializeAws_restJson1RuleGroupVariablesIpSetsDetails ( output . IpSets , context ) : undefined , PortSets : output . PortSets !== undefined && output . PortSets !== null ? deserializeAws_restJson1RuleGroupVariablesPortSetsDetails ( output . PortSets , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupVariablesIpSetsDetails = ( output , context ) : RuleGroupVariablesIpSetsDetails => { return { Definition : output . Definition !== undefined && output . Definition !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Definition , context ) : undefined , } as any ; } ; const deserializeAws_restJson1RuleGroupVariablesPortSetsDetails = ( output , context ) : RuleGroupVariablesPortSetsDetails => { return { Definition : output . Definition !== undefined && output . Definition !== null ? deserializeAws_restJson1NonEmptyStringList ( output . Definition , context ) : undefined , } as any ; } ; const deserializeAws_restJson1SecurityGroups = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1SensitiveDataDetections = ( output , context ) : SensitiveDataDetections => { return { Count : __expectLong ( output . Count ) , Occurrences : output . Occurrences !== undefined && output . Occurrences !== null ? deserializeAws_restJson1Occurrences ( output . Occurrences , context ) : undefined , Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1SensitiveDataDetectionsList = ( output , context ) : SensitiveDataDetections [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1SensitiveDataDetections ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1SensitiveDataResult = ( output , context ) : SensitiveDataResult => { return { Category : __expectString ( output . Category ) , Detections : output . Detections !== undefined && output . Detections !== null ? deserializeAws_restJson1SensitiveDataDetectionsList ( output . Detections , context ) : undefined , TotalCount : __expectLong ( output . TotalCount ) , } as any ; } ; const deserializeAws_restJson1SensitiveDataResultList = ( output , context ) : SensitiveDataResult [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1SensitiveDataResult ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Severity = ( output , context ) : Severity => { return { Label : __expectString ( output . Label ) , Normalized : __expectInt32 ( output . Normalized ) , Original : __expectString ( output . Original ) , Product : __limitedParseDouble ( output . Product ) , } as any ; } ; const deserializeAws_restJson1SoftwarePackage = ( output , context ) : SoftwarePackage => { return { Architecture : __expectString ( output . Architecture ) , Epoch : __expectString ( output . Epoch ) , FilePath : __expectString ( output . FilePath ) , Name : __expectString ( output . Name ) , PackageManager : __expectString ( output . PackageManager ) , Release : __expectString ( output . Release ) , Version : __expectString ( output . Version ) , } as any ; } ; const deserializeAws_restJson1SoftwarePackageList = ( output , context ) : SoftwarePackage [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1SoftwarePackage ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1Standard = ( output , context ) : Standard => { return { Description : __expectString ( output . Description ) , EnabledByDefault : __expectBoolean ( output . EnabledByDefault ) , Name : __expectString ( output . Name ) , StandardsArn : __expectString ( output . StandardsArn ) , } as any ; } ; const deserializeAws_restJson1Standards = ( output , context ) : Standard [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Standard ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StandardsControl = ( output , context ) : StandardsControl => { return { ControlId : __expectString ( output . ControlId ) , ControlStatus : __expectString ( output . ControlStatus ) , ControlStatusUpdatedAt : output . ControlStatusUpdatedAt !== undefined && output . ControlStatusUpdatedAt !== null ? __expectNonNull ( __parseRfc3339DateTime ( output . ControlStatusUpdatedAt ) ) : undefined , Description : __expectString ( output . Description ) , DisabledReason : __expectString ( output . DisabledReason ) , RelatedRequirements : output . RelatedRequirements !== undefined && output . RelatedRequirements !== null ? deserializeAws_restJson1RelatedRequirementsList ( output . RelatedRequirements , context ) : undefined , RemediationUrl : __expectString ( output . RemediationUrl ) , SeverityRating : __expectString ( output . SeverityRating ) , StandardsControlArn : __expectString ( output . StandardsControlArn ) , Title : __expectString ( output . Title ) , } as any ; } ; const deserializeAws_restJson1StandardsControls = ( output , context ) : StandardsControl [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1StandardsControl ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StandardsInputParameterMap = ( output , context ) : { [ key ] : string ; } => { return Object . entries ( output ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : __expectString ( value ) as any , } ; } , { } ) ; } ; const deserializeAws_restJson1StandardsStatusReason = ( output , context ) : StandardsStatusReason => { return { StatusReasonCode : __expectString ( output . StatusReasonCode ) , } as any ; } ; const deserializeAws_restJson1StandardsSubscription = ( output , context ) : StandardsSubscription => { return { StandardsArn : __expectString ( output . StandardsArn ) , StandardsInput : output . StandardsInput !== undefined && output . StandardsInput !== null ? deserializeAws_restJson1StandardsInputParameterMap ( output . StandardsInput , context ) : undefined , StandardsStatus : __expectString ( output . StandardsStatus ) , StandardsStatusReason : output . StandardsStatusReason !== undefined && output . StandardsStatusReason !== null ? deserializeAws_restJson1StandardsStatusReason ( output . StandardsStatusReason , context ) : undefined , StandardsSubscriptionArn : __expectString ( output . StandardsSubscriptionArn ) , } as any ; } ; const deserializeAws_restJson1StandardsSubscriptions = ( output , context ) : StandardsSubscription [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1StandardsSubscription ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StatelessCustomActionDefinition = ( output , context ) : StatelessCustomActionDefinition => { return { PublishMetricAction : output . PublishMetricAction !== undefined && output . PublishMetricAction !== null ? deserializeAws_restJson1StatelessCustomPublishMetricAction ( output . PublishMetricAction , context ) : undefined , } as any ; } ; const deserializeAws_restJson1StatelessCustomPublishMetricAction = ( output , context ) : StatelessCustomPublishMetricAction => { return { Dimensions : output . Dimensions !== undefined && output . Dimensions !== null ? deserializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList ( output . Dimensions , context ) : undefined , } as any ; } ; const deserializeAws_restJson1StatelessCustomPublishMetricActionDimension = ( output , context ) : StatelessCustomPublishMetricActionDimension => { return { Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList = ( output , context ) : StatelessCustomPublishMetricActionDimension [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1StatelessCustomPublishMetricActionDimension ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StatusReason = ( output , context ) : StatusReason => { return { Description : __expectString ( output . Description ) , ReasonCode : __expectString ( output . ReasonCode ) , } as any ; } ; const deserializeAws_restJson1StatusReasonsList = ( output , context ) : StatusReason [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1StatusReason ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StringFilter = ( output , context ) : StringFilter => { return { Comparison : __expectString ( output . Comparison ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1StringFilterList = ( output , context ) : StringFilter [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1StringFilter ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1StringList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1TagMap = ( output , context ) : { [ key ] : string ; } => { return Object . entries ( output ) . reduce ( ( acc , [ key , value ] ) => { if ( value === null ) { return acc ; } return { ... acc , [ key ] : __expectString ( value ) as any , } ; } , { } ) ; } ; const deserializeAws_restJson1ThreatIntelIndicator = ( output , context ) : ThreatIntelIndicator => { return { Category : __expectString ( output . Category ) , LastObservedAt : __expectString ( output . LastObservedAt ) , Source : __expectString ( output . Source ) , SourceUrl : __expectString ( output . SourceUrl ) , Type : __expectString ( output . Type ) , Value : __expectString ( output . Value ) , } as any ; } ; const deserializeAws_restJson1ThreatIntelIndicatorList = ( output , context ) : ThreatIntelIndicator [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1ThreatIntelIndicator ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1TypeList = ( output , context ) : string [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return __expectString ( entry ) as any ; } ) ; } ; const deserializeAws_restJson1Vulnerability = ( output , context ) : Vulnerability => { return { Cvss : output . Cvss !== undefined && output . Cvss !== null ? deserializeAws_restJson1CvssList ( output . Cvss , context ) : undefined , Id : __expectString ( output . Id ) , ReferenceUrls : output . ReferenceUrls !== undefined && output . ReferenceUrls !== null ? deserializeAws_restJson1StringList ( output . ReferenceUrls , context ) : undefined , RelatedVulnerabilities : output . RelatedVulnerabilities !== undefined && output . RelatedVulnerabilities !== null ? deserializeAws_restJson1StringList ( output . RelatedVulnerabilities , context ) : undefined , Vendor : output . Vendor !== undefined && output . Vendor !== null ? deserializeAws_restJson1VulnerabilityVendor ( output . Vendor , context ) : undefined , VulnerablePackages : output . VulnerablePackages !== undefined && output . VulnerablePackages !== null ? deserializeAws_restJson1SoftwarePackageList ( output . VulnerablePackages , context ) : undefined , } as any ; } ; const deserializeAws_restJson1VulnerabilityList = ( output , context ) : Vulnerability [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1Vulnerability ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1VulnerabilityVendor = ( output , context ) : VulnerabilityVendor => { return { Name : __expectString ( output . Name ) , Url : __expectString ( output . Url ) , VendorCreatedAt : __expectString ( output . VendorCreatedAt ) , VendorSeverity : __expectString ( output . VendorSeverity ) , VendorUpdatedAt : __expectString ( output . VendorUpdatedAt ) , } as any ; } ; const deserializeAws_restJson1WafAction = ( output , context ) : WafAction => { return { Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1WafExcludedRule = ( output , context ) : WafExcludedRule => { return { RuleId : __expectString ( output . RuleId ) , } as any ; } ; const deserializeAws_restJson1WafExcludedRuleList = ( output , context ) : WafExcludedRule [ ] => { return ( output || [ ] ) . filter ( ( e ) => e != null ) . map ( ( entry ) => { if ( entry === null ) { return null as any ; } return deserializeAws_restJson1WafExcludedRule ( entry , context ) ; } ) ; } ; const deserializeAws_restJson1WafOverrideAction = ( output , context ) : WafOverrideAction => { return { Type : __expectString ( output . Type ) , } as any ; } ; const deserializeAws_restJson1Workflow = ( output , context ) : Workflow => { return { Status : __expectString ( output . Status ) , } as any ; } ; const deserializeMetadata = ( output ) : __ResponseMetadata => ( { httpStatusCode : output . statusCode , requestId : output . headers [ "x-amzn-requestid" ] ?? output . headers [ "x-amzn-request-id" ] , extendedRequestId : output . headers [ "x-amz-id-2" ] , cfId : output . headers [ "x-amz-cf-id" ] , } ) ; const collectBody = ( streamBody = new Uint8Array ( ) , context ) : Promise < Uint8Array > => { if ( streamBody instanceof Uint8Array ) { return Promise . resolve ( streamBody ) ; } return context . streamCollector ( streamBody ) || Promise . resolve ( new Uint8Array ( ) ) ; } ; const collectBodyString = ( streamBody , context ) : Promise < string > => collectBody ( streamBody , context ) . then ( ( body ) => context . utf8Encoder ( body ) ) ; const isSerializableHeaderValue = ( value ) : boolean => value !== undefined && value !== null && value !== "" && ( ! Object . getOwnPropertyNames ( value ) . includes ( "length" ) || value . length != 0 ) && ( ! Object . getOwnPropertyNames ( value ) . includes ( "size" ) || value . size != 0 ) ; const parseBody = ( streamBody , context ) : any => collectBodyString ( streamBody , context ) . then ( ( encoded ) => { if ( encoded . length ) { return JSON . parse ( encoded ) ; } return { } ; } ) ; /**
 * Load an error code for the aws.rest-json-1.1 protocol.
 */ const loadRestJsonErrorCode = ( output , data ) : string => { const findKey = ( object , key ) => Object . keys ( object ) . find ( ( k ) => k . toLowerCase ( ) === key . toLowerCase ( ) ) ; const sanitizeErrorCode = ( rawValue ) : string => { let cleanValue = rawValue ; if ( cleanValue . indexOf ( ":" ) >= 0 ) { cleanValue = cleanValue . split ( ":" ) [ 0 ] ; } if ( cleanValue . indexOf ( "#" ) >= 0 ) { cleanValue = cleanValue . split ( "#" ) [ 1 ] ; } return cleanValue ; } ; const headerKey = findKey ( output . headers , "x-amzn-errortype" ) ; if ( headerKey !== undefined ) { return sanitizeErrorCode ( output . headers [ headerKey ] ) ; } if ( data . code !== undefined ) { return sanitizeErrorCode ( data . code ) ; } if ( data [ "__type" ] !== undefined ) { return sanitizeErrorCode ( data [ "__type" ] ) ; } return "" ; } ;